Inserção, edição no ClientDataSet

Delphi

19/08/2005

Pessoal, muito bom dia!!!

Minha dúvida é o seguinte.

Tenho um cadastro de cidade onde a tabela CIDADE possui apenas dois campos ID_CIDADE e NOME. Quando clico em Novo, eu dou o Append no cds. Depois quando eu clico em Gravar, eu dou um Post no CDS e em seguida dou um ApplyUpdates. Aí, em seguida, logo depois que eu inseri um registro, eu vou alterar o registro. Então clico em Alterar. Quando eu vou Gravar, dou novamente Post no CDS e em seguida dou um AppyUpdates. Só que está dano os seguintes erros no ApplyUpdates:
[color=red:5512c3ba97]Record not found or changed by another user.
Unable to find record. No key specified.[/color:5512c3ba97].
Esse erro é pq a aplicação não está achando o valor do campo ID_CIDADE. Sei que ele não acha o valor pq o registro foi gravado no banco e ainda não está no dataset.

Como que eu faço para pegar esse valor do campo ID_CIDADE logo depois que eu inclui um registro no banco, para eu poder, se eu quiser, em seguida alterar este mesmo registro que eu acabei de incluir???
Existe alguma propriedade no campo ID_CIDADE no CDS que eu tenho que alterar?

Estou usando Delphi 2005, SQL Server e ADO.

Cristiano


Cristianojedi

Cristianojedi

Curtidas 0

Respostas

Kotho

Kotho

19/08/2005

Você pode usar um refresh apos o ApplyUpdates...


GOSTEI 0
Cristianojedi

Cristianojedi

19/08/2005

Já tentei...
Só que depois que eu dou o Refresh, o meu dbedtNome fica vazio!!! Aí eu clico em Alterar e quem que eu estou alterando, um campo vazio???

Não resolve o meu problema...

Obrigado!

Mais alguma sugestão?

Cristiano


GOSTEI 0
Cristianojedi

Cristianojedi

19/08/2005

Alguém mais pode me ajudar?

Cristiano


GOSTEI 0
Crash

Crash

19/08/2005

da um close e depois um open porque refresh eu acho q nao vai resolver. E se vc tiver utilizando IBClientDataSet.. eu te aconselho a dar um Commit no transaction.

t+


GOSTEI 0
Cristianojedi

Cristianojedi

19/08/2005

É mais se eu der um close e depois um open co CDS, o meu DBEdit vai limpar... Eu não quero isso!!! Quero que quando eu clicar em Alterar, logo depois te ter incluído um registro, ele me permita fazer a alteração e gravar normalmente sem erro. Se eu limpar a tela (fechando e abrindo o CDS), O registro não vai estar lá mais pra que eu possa altera-lo.

Obrigado!

Alguém mais pode me ajudar?

Cristiano


GOSTEI 0
Cristianojedi

Cristianojedi

19/08/2005

sobe...


GOSTEI 0
Cristianojedi

Cristianojedi

19/08/2005

Mais ninguém pode me ajudar nisso?

Obrigado!!!

Cristiano


GOSTEI 0
Crash

Crash

19/08/2005

entao faz o seguinte:

cira uma variavel pegando o codigo do novo registro, da um close depois um open e da um locate para esse registro. Para nao aparecer para o cliente use DisabeControls e EnableControls.

t+


GOSTEI 0
POSTAR