Refresh em ClientDataSet
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
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
Curtidas 0
Respostas
Steve_narancic
06/10/2009
Esta dando um applyupdates logo após o post?
clientdataset.post; clientdataset.applyupdates(0);
GOSTEI 0
Et.vinny
06/10/2009
Sim, estou usando.
Mas todos os Fields que são PK do ClientDataSet e do SQLQuerry, estão com a seguinte configuração.
Abraços
Marlon
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
GOSTEI 0
Catunda
06/10/2009
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.
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.
GOSTEI 0
Steve_narancic
06/10/2009
Porque voce precisa dar um refresh???
GOSTEI 0
Et.vinny
06/10/2009
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.
Por isto tenho que fazer algo, para recuperar este valor.
GOSTEI 0
Et.vinny
06/10/2009
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.
Por isto tenho que fazer algo, para recuperar este valor.
GOSTEI 0
Luiz_aquino
06/10/2009
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, []);
GOSTEI 0
Et.vinny
06/10/2009
Estou vendo a melhor maneira.
:)
Valeu galera.....
:)
Valeu galera.....
GOSTEI 0