Fórum CHAVE PRIMÁRIA NO DELPHI #164443
04/06/2003
0
Olá Turma,
Tenho um cadastro de clientes, onde tenho como chave primária o campo ´CPF´.
Como faço para não se repetir o número de CPF?
já tentei o seguinte:
If Not(Dm.IBTransaction.InTransaction) Then
Dm.IBTransaction.StartTransaction;
Dm.IBDS_SOCIOS.Post;
Dm.IBDS_SOCIOS.ApplyUpdates;
Dm.IBTransaction.CommitRetaining;
except
on e:EdatabaseError do
Begin
if Uppercase(copy(E.Message,1,34))=´VIOLATION OF PRIMARY OR UNIQUE KEY´ then
ShowMessage(´Não é possível salvar os dados, o nº do ´CPF´ informado já está cadastrado, informe outro.´);
Dm.IBDS_SOCIOS.Cancel;
Dm.IBDS_SOCIOS.CancelUpdates;
Dm.IBTransaction.RollbackRetaining;
end;
Mas como etou usando TRIGGERs para autoincrementar o campo código, quando o cadastro é cancelado o código que seria inserido no cadastro atual no próximo cadastro não é inserido mais.
EX: ( no novo cadastro seria o código 2, foi cancelado, quando tento outro cadastro o código é 3, então se foi cancelado, no outro cadastro o código teria de ser 2.)
Fico grato a quem poder mim ajudar.
Erivando Ramos
Tenho um cadastro de clientes, onde tenho como chave primária o campo ´CPF´.
Como faço para não se repetir o número de CPF?
já tentei o seguinte:
If Not(Dm.IBTransaction.InTransaction) Then
Dm.IBTransaction.StartTransaction;
Dm.IBDS_SOCIOS.Post;
Dm.IBDS_SOCIOS.ApplyUpdates;
Dm.IBTransaction.CommitRetaining;
except
on e:EdatabaseError do
Begin
if Uppercase(copy(E.Message,1,34))=´VIOLATION OF PRIMARY OR UNIQUE KEY´ then
ShowMessage(´Não é possível salvar os dados, o nº do ´CPF´ informado já está cadastrado, informe outro.´);
Dm.IBDS_SOCIOS.Cancel;
Dm.IBDS_SOCIOS.CancelUpdates;
Dm.IBTransaction.RollbackRetaining;
end;
Mas como etou usando TRIGGERs para autoincrementar o campo código, quando o cadastro é cancelado o código que seria inserido no cadastro atual no próximo cadastro não é inserido mais.
EX: ( no novo cadastro seria o código 2, foi cancelado, quando tento outro cadastro o código é 3, então se foi cancelado, no outro cadastro o código teria de ser 2.)
Fico grato a quem poder mim ajudar.
Erivando Ramos
Erivando
Curtir tópico
+ 0
Responder
Posts
04/06/2003
Josemarlourenco
Já tentou pesquisar o CPF (para ver se já existe), antes de tentar gravar?
Isto poderia ser feito, por exemplo, no BeforePost.
Josemar
Isto poderia ser feito, por exemplo, no BeforePost.
Josemar
Responder
Gostei + 0
04/06/2003
Fred
se voce esta usando o CPF como primary key pra que ter um código e autincremente pelo que entendi voce esta com duas chaves primarias
use apenas o CPF
use apenas o CPF
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)