Fórum checar cpf e rg para não existirem registros duplicados #50852

03/05/2005

0

Olá pessoal. estou fazendo um programinha, com interbase 6 e delphi 7, e numa tabela tando o rg quanto o cpf não podem ter 2 registros iguais no banco. Alguem pode me ajudar com uma store procedure que não deixe existir dois registros iguais e me rertorne uma mensagem de erro quando ja existir um registro igual no banco. Uma dica, ou um tutorial é tudo oque eu preciso.
Eu coloquei a chave primaria no rg, isto já impede que ele tenha dois registros iguais, mas preciso tambem no cpf.
Obrigado pela atenção e por qualquer ajuda.
Um forte abraço a todos!


Jorgerock

Jorgerock

Responder

Posts

04/05/2005

Bruno Belchior

adicione a uma contraint [b:a86d3ae493]unique[/b:a86d3ae493] no CPF...
Alter Table SuaTabela Add Constraint CPFUnico Unique (CPF);



Responder

Gostei + 0

04/05/2005

Jorgerock

eu tento fazer assim mas dá o seguinte erro:
Unsuccessful metadata update

Column: CPF not defined as NOT NULL - cannot be used in PRIMARY KEY/UNIQUE constraint definition
Statement: Alter Table clientes Add Constraint CPFUnico Unique (CPF)

mas mesmo assim o campo não poderia ser not null, porque algumas pessoas não têm cpf, eu precisava de algo como uma store procedure que verificasse se já não existe algum registro e me retornasse alguma mensagem em tempo de execução!

eu tinha deixado o campo cpf not null unique, mas daí não dá.

Mesmo assim muito obrigado pela atenção e pela ajuda!

Um forte abraço!


Responder

Gostei + 0

04/05/2005

Gandalf.nho

Mais fácil do que usar SP acho que seria uma trigger que dispararia automaticamente a cada inserção/edição no banco e tb poderia enviar uma exceção para a aplicação cliente.


Responder

Gostei + 0

04/05/2005

Edilcimar

e quanto ao RG [b:b4b450a423]existe[/b:b4b450a423] duplicação, basta ser de outro estado


Responder

Gostei + 0

04/05/2005

Jorgerock

Obrigado pela ajuda de todos. Desculpem a minha inexperiência, é a primeira vez que eu tenho que fazer algo assim, será que vocês poderiam me ajudar com essa trigger. Algum exemplo, qualquer coisa.
Vocêm vão estar me ajudando a quebrar um galho enorme, já estão ajudando é claro.
Um forte abraço a todos!


Responder

Gostei + 0

04/05/2005

Jorgerock

Coloquei um codigo no botão que salva,
dmdados.qrycpf.Close;
dmdados.qrycpf.Sql.Clear;
dmdados.qrycpf.Sql.Add(´select cpf from cadastro´);
dmdados.qrycpf.Sql.Add(´where cpf = :cpf´);
dmdados.qrycpf.Params[0].AsString :=edtcpf.text;
dmdados.qrycpf.Open;
If not dmdados.qrycpf.IsEmpty Then
begin
application.messagebox(´CPF Repetido, AVISO!´);
Exit;
end
Else
dmdados.tblcadastro.post;
ele não deixa que sejam salvos registros duplicados, agora oque eu não consigo fazer é quando eu vou editar um registro, ele vai dizer que o registro já existe. Eu não consegui fazer ele comparar o codigo do que está sendo editado com o codigo armazenado, para se caso o codigo seja o mesmo ele salve.
Já estou evoluindo com a ajuda de vocês, mas ainda preciso de uma luz.
Muito obrigado pela atenção de todos!
Um forte abraço!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar