Fórum DBGrid c/ dados de duas tabelas dá Pau-Geral? #375744

08/10/2009

0

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?


Dogu

Dogu

Responder

Posts

08/10/2009

Dogu

DBExpress 4, Delphi 2009 e FireBird 2.1; SQLDataSet - ProviderDataSet - ClientDataSet.


Responder

Gostei + 0

08/10/2009

Fabriciok

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.


Responder

Gostei + 0

08/10/2009

Edsant

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.


Responder

Gostei + 0

08/10/2009

Dogu

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)


Responder

Gostei + 0

08/10/2009

Dogu

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!! ;-)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar