Gravação com ClientDataset

Delphi

14/06/2007

Tenho uma gravação em um ClientDataset q atualiza n campos, mas qdo estou dando um commit no meu Adoconnection, aparece uma msg de erro informando q o nome inválido de Coluna.

minha conexão:
Adoconnection --> Adodataset --> DatasetProvider --> ClientDataset -->


No DatasetProvider
[poAllowMultiRecordUpdates,poAutoRefresh,poAllowCommandText]


No ClientDataset
Select I.Cod_pm, I.Cod_produto, I.QTD, I.COD_PROTOCOLO, I.ID, I.PAGO, P.descricao from ind_tb_itens I, ind_tb_produtos P where P.Cod_produto = i.cod_produto

ele dá post tranq.
mas qdo vou comitar ocorre esse problema de nome inválido de coluna.


Cabal

Cabal

Curtidas 0

Respostas

Macario

Macario

14/06/2007

OLá.

O erro acontece pq no applyupdate o DataSetProvider tentar atualizar/incluir a Descrição da Tabela ind_tb_produtos P.

Verifique a propriedade ProviderFlags dos TFields, onde devem ficar:

CampoChave = [pfInUpdate,pfInWhere,pfInKey]
CampoNormal = [pfInUpdate]
Campos de outras tabelas=[] deixe todas opçoes como false;

Configure o DataSetProvider:
UpdateMode = upWhereKeyOnly


Qualquer coisa estamos aqui


GOSTEI 0
Cabal

Cabal

14/06/2007

Pô! xou de bola, tá quase funfa !

só deu um probleminha...
fiz o q tu mandou, mas agora apareceu a seguinte msg:

Unable To find record. No key specified.

na minha table de itens a pk eh: Cod_PEDIDO+COd_Produto

será q tem algo a ver???


GOSTEI 0
Macario

Macario

14/06/2007

Olá.

Vamos verificar:

Voce alterou a propriedade [b:4191ff1ded]UpdateMode[/b:4191ff1ded] do DataSetProvider para [b:4191ff1ded]upWhereKeyOnly[/b:4191ff1ded]?

O valor para Cod_PEDIDO e COd_Produto são obtidos de qual forma?

8)


GOSTEI 0
Cabal

Cabal

14/06/2007

Alterei sim, os dados são obtidos atraves de um select na tabela de itens X produtos.

na propriedade commandtext do clientDataset = Select I.Cod_pm, I.Cod_produto, I.QTD, I.COD_PROTOCOLO, I.ID, I.PAGO, P.Descricao from ind_tb_itens I, ind_tb_produtos P
Where I.Cod_produto = P.Cod_produto


GOSTEI 0
POSTAR