Atualizar Dados em DBGrid

28/12/2005

Tenho a seguinte instrução SQL
SELECT VENDAITENS.*, PRODUTOS.DESCRICAO AS NOMEPRODUTO INNER JOIN PRODUTOS ON(PRODUTOS.CODIGO = VENDAITENS.PRODUTO)

Trabalho com SQLDataSet, ClientDataSet, DataSetProvider e DataSource. Ligo os campos aos DBEDits e DBGrids através do DataSource.

Tenho um DbGrid onde aparecem os dados detalhes da venda (tabela VENDAITENS).

O problema: quando dou um ClienteDataSetVENDAITENS.insert e seleciono o produto eu precisaria que o DBGrid já mostrasse o valor do campo NOMEPRODUTO, mas isso só ocorre quando eu der novamente um ClienteDataSetVENDAITENS.Open, ou seja, isso só poderá ocorrer depois que toda a venda for gravada e eu der um .open ou .refresh na tabela e isso não me serve.
Criando campos de lookup no ClientDataSet, o problema é resolvido, ou seja, logo que dou ClienteDataSetVENDAITENS.insert e seleciono o item (produto) o valor do NOMEPRODUTO já é mostrado no DBGrid, mas me parece que campos de lookups são pesados e eu preciso fazer isso com mais de um campo.

Alguém tem uma solução parar isso?

Obrigado


Armindo