Verificação de números repetidos...
Olá pessoal,
Gostaria de fazer verificação para não haver números repetidos, mas gostaria de fazer pelo delphi e não pelo banco de dados (PK). E se tiver o número repedito dar a mensagem, ´Número repetido, último número nº XX´, tem como pelo menos para dar a mensagem.
Obrigado.
Rodrigo.
Gostaria de fazer verificação para não haver números repetidos, mas gostaria de fazer pelo delphi e não pelo banco de dados (PK). E se tiver o número repedito dar a mensagem, ´Número repetido, último número nº XX´, tem como pelo menos para dar a mensagem.
Obrigado.
Rodrigo.
Rodrigorpb
Curtidas 0
Respostas
Carlosmedeiroslima
08/09/2005
se o seu campo for autonumeric
select max(campo) from tabela
em um novo ´handle´ coloque
select max(campo) +1 from tabela
select max(campo) from tabela
em um novo ´handle´ coloque
select max(campo) +1 from tabela
GOSTEI 0
Rodrigorpb
08/09/2005
Obrigado,
Mas não tem nada que possa vazer a verificação pelo códigos do Delphi mesmo?
Uso F.B 1.5, IBX.
Rodrigo.
Mas não tem nada que possa vazer a verificação pelo códigos do Delphi mesmo?
Uso F.B 1.5, IBX.
Rodrigo.
GOSTEI 0
Giancorrea
08/09/2005
se for em um campo de uma tabela do banco de dados é só você fazer um SELECT simples, assim ó:
IBQuery1.Close;
IBQuery1.SQL.Add(´select CODIGO, NOME from PESSOA where CODIGO = 10);
IBQuery1.Prepare;
IBQuery1.Open;
if (IBQuery1.RecordCount > 0) then
ShowMessage(´Um registro já possui o código ´ + IBQuery1CODIGO.AsString);
Bom, acho que era isso aí, qualquer coisa entre em contato
IBQuery1.Close;
IBQuery1.SQL.Add(´select CODIGO, NOME from PESSOA where CODIGO = 10);
IBQuery1.Prepare;
IBQuery1.Open;
if (IBQuery1.RecordCount > 0) then
ShowMessage(´Um registro já possui o código ´ + IBQuery1CODIGO.AsString);
Bom, acho que era isso aí, qualquer coisa entre em contato
GOSTEI 0
Rodrigorpb
08/09/2005
Gostaria de quando eu digitar um número em um campo no meu form e clicar em salvar ele verificar se o código existe e se existir dar a mensagem, este código funciona? Mas tb o o campo pode ser nulo.
Obrigado.
Rodrigo.
Obrigado.
Rodrigo.
GOSTEI 0
Giancorrea
08/09/2005
Esse código funciona para campos tanto nulos e não nulos. Só que tem que ser passado um ´valor´, o campo não pode estar em branco, se não a ´consulta´ retorna todos os valores da tabela.
GOSTEI 0
Rodrigorpb
08/09/2005
Obrigado.
Isso é muito interessante. Mas o que eu queria realmente era o seguinte, tenho um Formulário para Cadastro de Registro de Casamento, nele tem o campo Nome do Noivo, Nome da Noiva, Nº do Livro, Nº da Folha, e Nº da Incrição, o número da incrição pode ser cadastrado em branco, mas ele não pode se repetir, não quero colocá-lo como Chave-Primária, quero fazer no Delphi um jeito que ele verifique no Banco e de a mensagem caso este código exista.
Obrigado.
Rodrigo.
Isso é muito interessante. Mas o que eu queria realmente era o seguinte, tenho um Formulário para Cadastro de Registro de Casamento, nele tem o campo Nome do Noivo, Nome da Noiva, Nº do Livro, Nº da Folha, e Nº da Incrição, o número da incrição pode ser cadastrado em branco, mas ele não pode se repetir, não quero colocá-lo como Chave-Primária, quero fazer no Delphi um jeito que ele verifique no Banco e de a mensagem caso este código exista.
Obrigado.
Rodrigo.
GOSTEI 0
G1b4
08/09/2005
No OnValidate do Campo:
Veja se isso resolve...
procedure DataSetValidate(Sender: TField); begin If (length(trim(Sender.AsString)) > 0) And (DataSet.State=dsInsert) Then Begin IBQuery1.Close; IBQuery1.SQL.Text := ´SELECT INSCRICAO FROM TABELA WHERE INSCRICAO = ´ + Sender.AsString; IBQuery1.Open; If Not IBQuery1.IsEmpty Then Begin IBQuery1.Close; IBQuery1.SQL.Text := ´SELECT MAX(INSCRICAO) FROM TABELA´; IBQuery1.Open; raise Exception.Create(´Número repetido, último número nº ´ + IBQuery1.FIelds[0].AsString); End; IBQuery1.Close; End; end;
Veja se isso resolve...
GOSTEI 0