Array
(
)

Query nao Atualiza

Nettopassaro
   - 19 mar 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?


Alexandre_torres
   - 19 mar 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+


Paullsoftware
   - 20 mar 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 Post na tabela Master
na Propriedade SQL da query faça a ligação e um filtro para mostrar apenas os itens daquele pedido:

Propriedade SQL =
#Código

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


eu normalmente faço isso no evento affterScroll do Master
#Código
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:
#Código

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: ..