Problemas com ClientDataSet
12/08/2004
0
Estou usando uma estrutura com DbExpress
com os seguintes componentes:
SqlQuery + DataSet Provider + ClientDataSet
No Sql do SqlQuery coloco a Seguinte Instrução:
Select * from tabela1
Left Outer Join Tabela2 on tabela2.Campo = Tabela1.Campo
Adiciono os campos ao ClientDataSet e até aí tudo certo.
Quando dou um ApplayUpdate (-1) começam os problemas.
Retorno com o erro de que um determinado campo não foi
encontrado e depois retorna erro de chave.
Alguém teria como me passar alguama dica ou solução para esse problema ???
com os seguintes componentes:
SqlQuery + DataSet Provider + ClientDataSet
No Sql do SqlQuery coloco a Seguinte Instrução:
Select * from tabela1
Left Outer Join Tabela2 on tabela2.Campo = Tabela1.Campo
Adiciono os campos ao ClientDataSet e até aí tudo certo.
Quando dou um ApplayUpdate (-1) começam os problemas.
Retorno com o erro de que um determinado campo não foi
encontrado e depois retorna erro de chave.
Alguém teria como me passar alguama dica ou solução para esse problema ???
Marcos.rio
Curtir tópico
+ 0
Responder
Posts
12/08/2004
G1b4
Caro marcos.rio,
Creio eu que você está querendo fazer um Master/Detail. O erro ocorre porque a estrutura do master/detail que você tem que usar não é assim.
Isso que você fez, eu utilizo somente em consultas.
Espero tê-lo ajudado!!!
Creio eu que você está querendo fazer um Master/Detail. O erro ocorre porque a estrutura do master/detail que você tem que usar não é assim.
Isso que você fez, eu utilizo somente em consultas.
Espero tê-lo ajudado!!!
Responder
12/08/2004
Vinicius2k
Marcos,
Este erro é resultado de tentativa de atualização de um campo que não existe na tabela principal do Select e ocorre sempre em Joins, caso vc não informe ao Provider que este campo (o estrangeiro do Join) não deve ser atualizado...
Para isso sete a propriedade ´ProviderFlags -> pfInUpdate´ do TField ´estrangeiro´ no *ClientDataSet para ´False´...
* Esta é a solução teórica, mas apesar de nunca ter ocorrido comigo, já vi colegas relatando que tiveram que tomar a mesma providência no mesmo TField do SQLDataSet/SQLQuery...
Quanto ao erro de chave, pode, ou não estar atrelado à este... resolva este num primeiro momento e volte a postar a mensagem de ´erro de chave´ que vc tem, se persistir...
Espero ter ajudado...
T+
Este erro é resultado de tentativa de atualização de um campo que não existe na tabela principal do Select e ocorre sempre em Joins, caso vc não informe ao Provider que este campo (o estrangeiro do Join) não deve ser atualizado...
Para isso sete a propriedade ´ProviderFlags -> pfInUpdate´ do TField ´estrangeiro´ no *ClientDataSet para ´False´...
* Esta é a solução teórica, mas apesar de nunca ter ocorrido comigo, já vi colegas relatando que tiveram que tomar a mesma providência no mesmo TField do SQLDataSet/SQLQuery...
Quanto ao erro de chave, pode, ou não estar atrelado à este... resolva este num primeiro momento e volte a postar a mensagem de ´erro de chave´ que vc tem, se persistir...
Espero ter ajudado...
T+
Responder
Clique aqui para fazer login e interagir na Comunidade :)