Fórum env mens erro qdo um campo com unique for duplicado-firebird #355740
21/03/2008
0
tenho um bd firebird 2.0, onde tenho uma unique para dois campos, (cpf, adesao),
qdo digito algo cujo os valores referentes aos campos cpf e adesao ja existem, ele e gravado normalmente, aparece no dbgrid e tudo, mas qdo fecho a aplicação, e abro novamente o registro tem desaparecido, gostaria de saber se existe a possibilidade de qdo eu estiver digitando e mandar gravar o registro, se a unique nao for respeitada, dar uma menssagem de erro e abortar a inclusão do registro?
desde ja agradeço,
adriano.
Xadriano
Curtir tópico
+ 0Posts
21/03/2008
Marco Salles
Gostei + 0
21/03/2008
Xadriano
Gostei + 0
22/03/2008
Marco Salles
sua aplicação é Desktop ou ClientServidor ???
Gostei + 0
23/03/2008
Marco Salles
procedure TForm1.cdsAfterPost(DataSet: TDataSet); var cdsTemp:TClientDataSet; campo:String; begin try try cdsTemp:=TClientDataSet.Create(nil); cdsTemp.CloneCursor(cds,True); campo:=´cpf´; cdsTEmp.AddIndex(´cpf´,´cpf´,[ixUnique]); cdsTemp.DeleteIndex(´cpf´); campo:=´adesao´; cdsTEmp.AddIndex(´adesao´,´adesao´,[ixUnique]); cdsTemp.DeleteIndex(´adesao´); finally cdsTemp.Free; end; except on e:exception do begin showmessage(´Erro !!!! . O Campo ´campo+´ não pode ser Duplicado´); cds.Edit; //DbGrid ou Outro Controle consciente De Dados... dbgrid1.SelectedField:=cds.FieldByName(campo); end; end; end;
Gostei + 0
26/03/2008
Emerson Nascimento
nesses casos, implemente o evento OnReconcileError do cds com algo bem simples, como
ShowMessage(E.Message);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)