checar campo "Codigo" para evitar numero duplicado
Moderador: Moderadores
-
wallaceh
- Usuário Nível 1

- Mensagens: 3
- Registrado em: 05 Mai 2021 13:58
- Localização: foz do iguaçu / parana
checar campo "Codigo" para evitar numero duplicado
Olá! comecei a programar em xharbou a pouco tempo e estou tendo dificuldade para criar uma função que faz uma verificação no campo "código" da minha tabela para que não permita o usuário colocar um código já cadastrado, agradeço desde já!
Editado pela última vez por Itamar M. Lins Jr. em 13 Mai 2021 12:36, em um total de 1 vez.
Razão: O presente tópico foi movido da seção Contribuição, Dicas e Tutoriais, uma vez que seu conteúdo não tem relação com os objetivos daquela seção.
Razão: O presente tópico foi movido da seção Contribuição, Dicas e Tutoriais, uma vez que seu conteúdo não tem relação com os objetivos daquela seção.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
checar campo "Codigo" para evitar numero duplicado
Olá!
Bem vindo ao forum.
Mostre seu código.
Apenas a parte que interessa e que possa ser testados por todos do forum.
Pq tem algumas formas para fazer e com funções e comandos diferentes.
Saudações,
Itamar M. Lins Jr.
Bem vindo ao forum.
Mostre seu código.
Apenas a parte que interessa e que possa ser testados por todos do forum.
Pq tem algumas formas para fazer e com funções e comandos diferentes.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
wallaceh
- Usuário Nível 1

- Mensagens: 3
- Registrado em: 05 Mai 2021 13:58
- Localização: foz do iguaçu / parana
checar campo "Codigo" para evitar numero duplicado
segue abaixo o codigo
Código: Selecionar todos
STATIC FUNCTION CADASTRO_CRUD(cTIPO,nID) // Funcao de pesquisa cadastro 28/04/2021 wallace
LOCAL oDlg, oGroup1, oCOD, oTELEFONE, oLabel1, oLabel5, oNOME, oCPFCNPJ ;
, oDATACADASTRO, oLabel2, oLabel3, oLabel4, oButtonex1, oButtonex2
LOCAL cCOD := "" , cTELEFONE := "" , cNOME := "" , cCPJCNPJ := "" , dDATA := DATE(),;
aSQL:={}
IF EMPTY(nID)
nID:=0
ENDIF
IF cTIPO = 'A'
aSQL:=ES("SELECT codigo, nome, cpf_cnpj, data_cadastro, fone FROM cadastro_crud WHERE id="+CS(nID))
IF !EMPTY(aSQL) // L C
cCOD := aSQL[1,1]
cNOME := aSQL[1,2]
cCPJCNPJ := aSQL[1,3]
dDATA := aSQL[1,4]
cTELEFONE := aSQL[1,5]
ENDIF
ENDIF
IF cTIPO = 'E'
IF MSGYESNO("Deseja realmente excluir o cadastro?")
aSQL:=ES("DELETE FROM cadastro_crud WHERE id="+CS(nID))
ENDIF
RETURN(.t.)
ENDIF
INIT DIALOG oDlg TITLE "Alterar/Cadastrar CRUD" AT 0, 0 SIZE 674,278;
FONT HFont():Add( '',0,-13,400,,,) CLIPPER NOEXIT;
ICON _oICONE_SAGI();
STYLE DS_CENTER+WS_VISIBLE+WS_CAPTION+WS_MINIMIZEBOX+WS_SYSMENU+WS_SIZEBOX+WS_MAXIMIZEBOX
@ 9,11 GROUPBOX oGroup1 CAPTION "Dados do cadastro" SIZE 655,205 ;
STYLE BS_LEFT
@ 23,36 SAY oLabel1 CAPTION "Codigo:" SIZE 62,21
@ 192,38 GET oCOD VAR cCOD SIZE 80,24 PICTURE eMascNumInt ;
TOOLTIP 'Informe o codigo'
@ 26,174 SAY oLabel5 CAPTION "Telefone:" SIZE 84,21
@ 192,176 GET oTELEFONE VAR cTELEFONE SIZE 119,24 PICTURE _eMascFone() ;
TOOLTIP 'Informe o numero de telefone'
@ 23,69 SAY oLabel2 CAPTION "Nome:" SIZE 44,21
@ 192,71 GET oNOME VAR cNOME SIZE 291,24 PICTURE eMascGen;
TOOLTIP 'informe o nome'
@ 20,102 SAY oLabel3 CAPTION "CPF ou CNPJ:" SIZE 107,21
@ 192,106 GET oCPFCNPJ VAR cCPJCNPJ PICTURE "99999999999999" SIZE 151,24 ;
TOOLTIP 'Informe o CPF ou CNPJ'
@ 23,135 SAY oLabel4 CAPTION "Data de Cadastro:" SIZE 119,21
@ 192,141 GET DATEPICKER oDATACADASTRO VAR dDATA SIZE 91,24 ;
TOOLTIP 'Informe a data de cadastro'
@ 458,219 BUTTONEX oButtonex1 CAPTION "Salvar" SIZE 98,38 ;
ON CLICK {|| CADASTRA_NO_BANCO(cCOD,cTELEFONE,cNOME,cCPJCNPJ,dDATA,cTIPO,nID,oDlg) };
STYLE BS_CENTER +WS_TABSTOP
@ 563,218 BUTTONEX oButtonex2 CAPTION "Cancelar" SIZE 98,41 ;
ON CLICK {|| oDlg:close() };
STYLE BS_CENTER +WS_TABSTOP
ACTIVATE DIALOG oDlg
RETURN(.T.)
****************************************
STATIC FUNCTION CADASTRA_NO_BANCO(cCOD,cTELEFONE,cNOME,cCPJCNPJ,dDATA,cTIPO,nID,oobj) // cadastro banco 03/05/2021 - wallace - sajoweb
****************************************
IF EMPTY(cCOD) .OR. EMPTY(cTELEFONE) .OR. EMPTY(cNOME) .OR. EMPTY(cCPJCNPJ) .OR. EMPTY(dDATA)
SHOWMSG( 'Favor preencher todos os campos para salvar/alterar o registro' )
RETURN(.F.)
ENDIF
IF cTIPO = 'A' // se for alteração
SYG_BEGINTRANSACTION()
ES("UPDATE CADASTRO_CRUD SET codigo="+CS(cCOD)+", nome="+CS(cNOME)+", cpf_cnpj="+CS(cCPJCNPJ)+", data_cadastro="+CS(dDATA)+", fone="+CS(cTELEFONE)+" WHERE id ="+CS(nID))
SYG_ENDTRANSACTION()
SHOWMSG( 'Alterado com sucesso' )
ELSE // se não é insert
SYG_BEGINTRANSACTION()
ES("INSERT into CADASTRO_CRUD (codigo, nome, cpf_cnpj, data_cadastro, fone) values ("+CS(cCOD)+","+CS(cNOME)+","+CS(cCPJCNPJ)+","+CS(dDATA)+","+CS(cTELEFONE)+")")
SYG_ENDTRANSACTION()
SHOWMSG( 'Cadastrado com sucesso' )
ENDIF
oobj:close()
RETURN(.T.)
Editado pela última vez por Itamar M. Lins Jr. em 13 Mai 2021 12:10, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
checar campo "Codigo" para evitar numero duplicado
Olá!
Porquê, não usou autoincremento no campo código ?
Em todo caso criar outra tabela chamada totalizadores e somar + 1 quando for inclusão.
If "INSERT" ...
select codigo from totais_crud...
nCodigo = nCodigo + 1
Update totais_crud set codigo = nCodigo ...
depois
INSERT into cadastro_crud...
Precisa ter um campo qualquer em uma tabela para guardar o ultimo código utilizado.
Saudações,
Itamar M. Lins Jr.
Porquê, não usou autoincremento no campo código ?
Em todo caso criar outra tabela chamada totalizadores e somar + 1 quando for inclusão.
If "INSERT" ...
select codigo from totais_crud...
nCodigo = nCodigo + 1
Update totais_crud set codigo = nCodigo ...
depois
INSERT into cadastro_crud...
Precisa ter um campo qualquer em uma tabela para guardar o ultimo código utilizado.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
wallaceh
- Usuário Nível 1

- Mensagens: 3
- Registrado em: 05 Mai 2021 13:58
- Localização: foz do iguaçu / parana
checar campo "Codigo" para evitar numero duplicado
então eu cheguei a cogitar usar o autoincremento nesse campo especifico, mas me foi solicitado mantes esse camppo livre.
agora eu consegui graças a sua ajuda, muito obrigado meu amigo
agora eu consegui graças a sua ajuda, muito obrigado meu amigo