Fórum Refresh em ClientDataSet #375663

06/10/2009

0

Pessoal, estou enfrentando um pequeno problema. Tenho um TClientDataSet
que faço um SELECT e abro ele no registro 1 da tabela de clientes.

Dou um insert, salvo os dados e ele salva no banco de dados.

Porém quando eu dou um Refresh neste ClientDataSet, ele não está no registro inserido, mas no registro anterior, antes de eu dar Insert.

Estou usando DBExpressa + SQL Server 2005. O campo ClienteID é identity e eu não passo ele como obrigatório.

[]s,

Marlon


Et.vinny

Et.vinny

Responder

Posts

06/10/2009

Steve_narancic

Esta dando um applyupdates logo após o post?


clientdataset.post;
clientdataset.applyupdates(0);



Responder

Gostei + 0

07/10/2009

Et.vinny

Sim, estou usando.
Mas todos os Fields que são PK do ClientDataSet e do SQLQuerry, estão com a seguinte configuração.

Fields[0].ProviderFlags := [pfInUpdate, pfInWhere, pfInKey];
Fields[0].Required := False;


Abraços

Marlon


Responder

Gostei + 0

07/10/2009

Catunda

o refresh fecha e abre o dataset, por isso volta ao registo inicial.
se vc quer que ele permaneça no registro atual, tem de guardar a chave primária do novo registro ou do que foi alterado e dar um locate após o refresh.


Responder

Gostei + 0

07/10/2009

Steve_narancic

Porque voce precisa dar um refresh???


Responder

Gostei + 0

07/10/2009

Et.vinny

Como eu uso campo Identity do SQL Server, e o usuário der um Edit após o ApplyUpdate, ele diz que o registro não existe. Por causa que o campo não volta automaticamente.

Por isto tenho que fazer algo, para recuperar este valor.


Responder

Gostei + 0

07/10/2009

Et.vinny

Como eu uso campo Identity do SQL Server, e o usuário der um Edit após o ApplyUpdate, ele diz que o registro não existe. Por causa que o campo não volta automaticamente.

Por isto tenho que fazer algo, para recuperar este valor.


Responder

Gostei + 0

08/10/2009

Luiz_aquino

Pessoal, estou enfrentando um pequeno problema. Tenho um TClientDataSet que faço um SELECT e abro ele no registro 1 da tabela de clientes. Dou um insert, salvo os dados e ele salva no banco de dados. Porém quando eu dou um Refresh neste ClientDataSet, ele não está no registro inserido, mas no registro anterior, antes de eu dar Insert. Estou usando DBExpressa + SQL Server 2005. O campo ClienteID é identity e eu não passo ele como obrigatório. []s, Marlon


o locate seria o melhor!

Query.Locate(\´nome_do_campo\´, Edit.text, []);


Responder

Gostei + 0

09/10/2009

Et.vinny

Estou vendo a melhor maneira.

:)

Valeu galera.....


Responder

Gostei + 0

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

Aceitar