GARANTIR DESCONTO

Fórum Inserção, edição no ClientDataSet #292309

19/08/2005

0

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

Responder

Posts

19/08/2005

Kotho

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


Responder

Gostei + 0

19/08/2005

Cristianojedi

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


Responder

Gostei + 0

19/08/2005

Cristianojedi

Alguém mais pode me ajudar?

Cristiano


Responder

Gostei + 0

19/08/2005

Crash

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+


Responder

Gostei + 0

19/08/2005

Cristianojedi

É 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


Responder

Gostei + 0

19/08/2005

Cristianojedi

sobe...


Responder

Gostei + 0

19/08/2005

Cristianojedi

Mais ninguém pode me ajudar nisso?

Obrigado!!!

Cristiano


Responder

Gostei + 0

19/08/2005

Crash

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+


Responder

Gostei + 0

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

Aceitar