applyupdate() com clientdataset e datasetprovider
Utilizo o Delphi 7 com firebird2.0.
Tenho um SqlDataSet ligado a um DataSetProvider que é ligado a um ClientDataSet.
Os campos estão incluidos no ClientDataSet.
No providerflags do campo que é chave primária tem pflnUpdate,pflnWhere e pflnKey como true, e o pflnHidden como false, e o a propriedade Required é false. Nos demais campos tá tudo false com excessão do pflnUpdate.
No DataSetProvider o UpdateMode está como UpWhereKeyOnly.
Mesmo assim no evento afterposto do ClientDataSet, ao chamar o ApplyUpdates(0) vem o erro ´Unable to find record. No key especified´.
Só dá certo se quando eu mudo o UpdateMode do DataSetProvider para UpWhereAll.
O que será que está faltando?
Tenho um SqlDataSet ligado a um DataSetProvider que é ligado a um ClientDataSet.
Os campos estão incluidos no ClientDataSet.
No providerflags do campo que é chave primária tem pflnUpdate,pflnWhere e pflnKey como true, e o pflnHidden como false, e o a propriedade Required é false. Nos demais campos tá tudo false com excessão do pflnUpdate.
No DataSetProvider o UpdateMode está como UpWhereKeyOnly.
Mesmo assim no evento afterposto do ClientDataSet, ao chamar o ApplyUpdates(0) vem o erro ´Unable to find record. No key especified´.
Só dá certo se quando eu mudo o UpdateMode do DataSetProvider para UpWhereAll.
O que será que está faltando?
Catunda
Curtidas 0
Respostas
Catunda
05/02/2008
ah... esqueci de mencionar que o erro só acontece quando tento alterar o registro.
Na inclusão não apresenta erro.
Na inclusão não apresenta erro.
GOSTEI 0
Fausto.malheiros
05/02/2008
tem um monte de gente que as vezes se atrapalha na hora do apply...inclusive. Qual é a forma correta de se fazer isso?
GOSTEI 0
Joaoshi
05/02/2008
Colega, tente incluir os campos no [b:a420a081f0]SqlDataSet[/b:a420a081f0] e configurar os [b:a420a081f0]ProviderFlags[/b:a420a081f0] (do SqlDataSet).
Espero ter ajudado.
Espero ter ajudado.
GOSTEI 0