DBGrid c/ dados de duas tabelas dá Pau-Geral?
Tenho uma tela de cadastro para venda de itens. Apresento a tabela de Venda_itens em um DBGrid através de ClientDataSet. Porém a coluna de Produtos possui apenas o Foreign Key do produto. Tentei fazer aparecer a descrição do produto através de lookup lá no cdsVenda_itens, mas para cada linha do DBGrid vem um gigantesco combobox (horrível). Então fiz um Select que trouxe a descrição para ser apresentada no DBGrid e ficou melhor porque não havia combobox. Entretanto, na hora de fazer o ApplyUpdate(0) que é aplicado na cdsVendas e não na cdsVendasItens ocorre um erro que diz: ´Coluna DESCRICAO não conhecida´ que é exatamente a descrição que da tabela produto.
Estou preocupado, como é que eu vou fazer isso?
Estou preocupado, como é que eu vou fazer isso?
Dogu
Curtidas 0
Respostas
Dogu
08/10/2009
DBExpress 4, Delphi 2009 e FireBird 2.1; SQLDataSet - ProviderDataSet - ClientDataSet.
GOSTEI 0
Fabriciok
08/10/2009
Essa coluna DESCRICAO, creio eu que seja a descrição do produto, correto?
Então ela não pertence à tabela a quem vc está chamando o ApplyUpdates. Portanto vc deve ir nas propriedades deste field DESCRICAO e em suas providerFlags, setar como False as opções pfInUpdate e pfInWhere.
Att.
Então ela não pertence à tabela a quem vc está chamando o ApplyUpdates. Portanto vc deve ir nas propriedades deste field DESCRICAO e em suas providerFlags, setar como False as opções pfInUpdate e pfInWhere.
Att.
GOSTEI 0
Edsant
08/10/2009
Amigo,
No seu ClientDataSet na propriedade [b:2a952db1dc]ProviderFlags [/b:2a952db1dc]do Campo Descrição coloque [b:2a952db1dc]PfinUpdate [/b:2a952db1dc]para [b:2a952db1dc]False[/b:2a952db1dc].
Isso faz com que o DSP não coloque esse campo no UPDATE.
Um abraço.
No seu ClientDataSet na propriedade [b:2a952db1dc]ProviderFlags [/b:2a952db1dc]do Campo Descrição coloque [b:2a952db1dc]PfinUpdate [/b:2a952db1dc]para [b:2a952db1dc]False[/b:2a952db1dc].
Isso faz com que o DSP não coloque esse campo no UPDATE.
Um abraço.
GOSTEI 0
Dogu
08/10/2009
No SQLDataSet.CommandText := select VI.PROD_ID, P.descricao, VI.COMISSAO_PERCENTO, VI.COMISSAO_VALOR, VI.CUSTO_COMPRA, VI.VALOR_TOTAL, VI.VENDA_ID from VENDAS_ITENS VI, produtos P where P.prod_id = VI.prod_id and VENDA_ID = :VENDA_ID
mas na hora do APPLYUPDATE(0) que faço através do master que é cdsVendas.applyUpdates(0) acontece isso:
First chance exception at $7C81EB33. Exception class TDBXError with message ´Column unknown
DESCRICAO
At line 1, column 8´. Process VendasConectiva.exe (3820)
mas na hora do APPLYUPDATE(0) que faço através do master que é cdsVendas.applyUpdates(0) acontece isso:
First chance exception at $7C81EB33. Exception class TDBXError with message ´Column unknown
DESCRICAO
At line 1, column 8´. Process VendasConectiva.exe (3820)
GOSTEI 0
Dogu
08/10/2009
Pessoal obrigado, mas tem um porém. Também tive de setar essas flags para false no SQLDataSet e não somente no ClientDataSet.
Valeu demais pessoal!! ;-)
Valeu demais pessoal!! ;-)
GOSTEI 0