Query nao Atualiza

Delphi

19/03/2006

Olá amigos...

Estou fazendo um form da seguinte maneira...

eu tenho uma QUERY que mostra em um DBGRID todos os itens de um pedido..

e quando o usuario adiciona um item... eu uso uma TABLE pra adicionar..

depois de dar um POST na tabela...

a query nao atualiza...

eu ja tentei por depois de postar:

query.close;
query.open;
query.refresh;
dbgrid.refresh;

mas mesmo assim ele nao mostra... e ainda por cima quando eu ponho o
query.refresh;

ele ainda da um erro qq...

alguem sabe de algo?


Nettopassaro

Nettopassaro

Curtidas 0

Respostas

Alexandre_torres

Alexandre_torres

19/03/2006

bom amigo tenta assim,

depois de vc lançar os ítens na tabela vc dá um tabela.refresh; e na query vc faz query.update;

de um modo geral isso faz com que os dados da tabela sejam realmente gravados e a query seja realmente atualizada;

espero ter ajudado.

T+


GOSTEI 0
Paullsoftware

Paullsoftware

19/03/2006

Qual base de dados vc está usando?
os seus itens estão likados ao pedido por um campo certo?

então tente assim:
tabela pedidos: CodPedido,Data.... e outros; Master

Tabela Itens: ID,IdPedido,Descricao... e outros; Detail

antes de inculir um item na lista de pedidos(seus itens) dê um [b:c49c5b4715]Post[/b:c49c5b4715] na tabela [b:c49c5b4715]Master[/b:c49c5b4715]
na Propriedade SQL da query faça a ligação e um filtro para mostrar apenas os itens daquele pedido:

Propriedade SQL =
Select * From Itens
Where IdPedido =:CodPedido
Order By Descricao


eu normalmente faço isso no evento affterScroll do Master
Query.Close;
//na linha abaixo a propriedade Parameters pode mudar de acordo com o tipo de Query que vc está usando...
Query.Parameters[0].AsInteger := TabelaPedidosCodPedido.AsInteger;
Query.Open;

mais se vc quer usar do seu modo, depois que vc incluir o item na tabela de Itens e der um post, faça assim:
TabelaItens.Post;//Você falou que usa uma tabela para armazenar os itens e outra para mostrar acho isso dois trabalhos, vc não acha?
//depois que salvar o novo item na tabela abra e feche a query novamente usando o código abaixo
Query.Close;
//na linha abaixo a propriedade Parameters pode mudar de acordo com o tipo de Query que vc está usando...
Query.Parameters[0].AsInteger := TabelaPedidosCodPedido.AsInteger;
Query.Open;


espero que tenha lhe ajudado, para facilitar, post seu código completo e qual base está usando, quais componentes, e etc :wink: ..


GOSTEI 0
POSTAR