Fórum dbExpress Firebird Delphi 7 #324082

23/06/2006

0

Amigos, bom dia!!!
Estou migrando minha aplicação que hj é em IBX pra dbExpress.
Comecei com um cadastro de Uf´s(ID_UF, UF), usando os componentes conforme manda a regra:
SqlConnection + SqlDataSet + DataSetProvider + ClientDataSet
Mudei os providerflags, sendo o TField ID_UF [pfInkey] e o TField UF [pfInUpdate]. Alterei tb o required field p/ False.
No meu BD tenho uma trigger pra autonumerar o campo ID_UF, até ai tudo ok.
Abro a tela, cadastro um registro, tudo ok. Em seguinda vou cadastrar o segundo e dá o seguinte erro : ´Key Violation´. Isso ocorre sempre.
O q será que estou fazendo de errado? Já tentei desativar a trigger e colocar o valor na mão pra ver, mas o erro persiste...
Qq ajuda é bem vinda!

Marcelo
[/img]


Mvicente

Mvicente

Responder

Posts

23/06/2006

Andreaskaquino

Após gravar o primeiro registro verifica qual o valor que gerou no campo ID, derepente ele esta gerando um código 0(zero) e ao inserir um novo registro ocorre a violação de chave primária.

Att,


Responder

Gostei + 0

23/06/2006

Paullsoftware

É que vc deve dar um Comit na transação em questão ou dar um refresh no seu CDS, pois, o mesmo guarda as informações em Cache local... exemplo básico de como eu faço hoje:

var
 TranDesc : TTransactionDesc; // declare DbXpress na uses
begin
 Try
   Transacao.TransactionID  := 1;
   Transacao.IsolationLevel := xilREADCOMMITTED;
   Conn.StartTransaction(Transacao);
   CdsClientes.Post;
   CdsCliente.ApplyUpdates(0);
   Conn.Commit(TranDesc);
 Except
   Conn.RollBack(TranDesc);
 end;

para maiores informações sobre transações com DbExpress tem dois links abaixo que são muito uteis...
http://forum.clubedelphi.net/viewtopic.php?t=75421&highlight=dbexpress+iniciante
http://forum.clubedelphi.net/viewtopic.php?t=58547
espero ter ajudado :wink:


Responder

Gostei + 0

23/06/2006

Mvicente

Amigos consegui, conforme a dica do companheiro Paulo Ricardo eu apenas estou dando um refresh no ClientDataSet no evento AfterApplyUpadades.
Valeu pela dica...

Sucesso a todos!!!


Responder

Gostei + 0

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

Aceitar