recuperar codigo autoincremento

13/08/2008

1

Bom dia amigos, tenho o seguinte problema:

Eu tenho um relacionamento mestre-detalhe, o mestre e inserido sem o codigo da chave primaria, uma triger no banco se encarrega de atribuir o codigo da chave primaria.

Agora como eu faco para atualizar so esse registro em meu clientDataSet mestre, pra poder pegar o codigo da chave primaria e assim inserir os detalhes.

Ja tentei configurando poAutoRefresh do provider, e nada. Tambem tentei refreshrecord e da um erro. Nao quero atualizar todo o clientdataset.

Utilizo dbexpress, sqldataser+provider+clientdataset. Firebird. Obrigado antecipado pela ajuda.


Responder

Posts

13/08/2008

Thiago Vidal

Cara, esse é um dos problemas ridiculamente simples que o Delphi tem, que me decepcionam.

Para resolver esse problema, eu utilizo o evento OnUpdateRecord do provider, antes de inserir, e já defino qual vai ser o valor da chave primária, e com a opção ´PropogateChanges´ essa alteração volta para o ClientDataSet.

Para pegar o valor do generator, vc precisa executar o comando:
select gen_id(GENERATOR_NAME, 1) from rdb$database


Espero ter sido claro.


Responder

14/08/2008

Eduardocar83

Obrigado amigo, problema resolvido.


Responder