Somando em Select e jogando em dbedit
Pessoal, estou fazendo o seguinte:
O que acontece:
Tenho estas 2 tabelas, vendas e mat_vendas.
Eu preciso pegar o valor total dos itens da mat_vendas para jogar em um dbedit da tabela vendas.
mas não consigo, ele não funciona.
O que pode ser feito?
Valeu!
[color=green]datamodule2.mat_vendas_soma.SelectSQL.Add(´select sum(valor_total) from mat_vendas where id_venda = :pvenda´)[/color]
O que acontece:
Tenho estas 2 tabelas, vendas e mat_vendas.
Eu preciso pegar o valor total dos itens da mat_vendas para jogar em um dbedit da tabela vendas.
mas não consigo, ele não funciona.
O que pode ser feito?
Valeu!
Ricieri
Curtidas 0
Respostas
Rjun
03/04/2006
Coloque um trecho maior do seu código.
GOSTEI 0
Nasguone
03/04/2006
Tente fazer uma procedure no proprio banco com parametro pegue esse parametro e jogue no dbedit
GOSTEI 0
Ricieri
03/04/2006
begin
with datamodule2.valor_total_venda do
begin
Close;
ParamByName(´pvendamat´).AsInteger := datamodule2.vendas.FieldByName(´ID_Venda´).AsInteger;
Open;
datamodule2.valor_total_venda.close;;
datamodule2.valor_total_venda.sql.clear;
datamodule2.valor_total_venda.SQL.Add(´select sum(a.valor_total) as total from mat_vendas a where a.id_venda = :pvendamat´);
datamodule2.valor_total_venda.open;
dbedit3.text := datamodule2.valor_total_venda.fieldbyname(´total´).text;
end;
with datamodule2.valor_total_venda do
begin
Close;
ParamByName(´pvendamat´).AsInteger := datamodule2.vendas.FieldByName(´ID_Venda´).AsInteger;
Open;
datamodule2.valor_total_venda.close;;
datamodule2.valor_total_venda.sql.clear;
datamodule2.valor_total_venda.SQL.Add(´select sum(a.valor_total) as total from mat_vendas a where a.id_venda = :pvendamat´);
datamodule2.valor_total_venda.open;
dbedit3.text := datamodule2.valor_total_venda.fieldbyname(´total´).text;
end;
GOSTEI 0
Rjun
03/04/2006
Jogue isso em um EDIT. Acho que não tem como você fazer isso pra um DBEDIT, já que ele é um controle consciente de dados.
Observações:
1. Passe o valor do parâmetro depois que você criar sua Query.
2. Se você está usando o WITH (que eu particulamente não uso), não precisa ficar repetindo o datamodule2.
3. Você pode por essa instrução SQL direto no seu componente TQuery em vez de ficar enfiado isso dentro do seu código.
4. Não fique deixando as querys abertas sem necessidade. Abra a query, faça o que tem q fazer, depois feche.
Observações:
1. Passe o valor do parâmetro depois que você criar sua Query.
2. Se você está usando o WITH (que eu particulamente não uso), não precisa ficar repetindo o datamodule2.
3. Você pode por essa instrução SQL direto no seu componente TQuery em vez de ficar enfiado isso dentro do seu código.
4. Não fique deixando as querys abertas sem necessidade. Abra a query, faça o que tem q fazer, depois feche.
begin with datamodule2.valor_total_venda do begin valor_total_venda.sql.clear; valor_total_venda.SQL.Add(´select sum(a.valor_total) as total from mat_vendas a where a.id_venda = :pvendamat´); valor_tota_venda.ParamByName(´pvendamat´).AsInteger := vendas.FieldByName(´ID_Venda´).AsInteger; try valor_total_venda.Open; Edit1.text := valor_total_venda.fieldbyname(´total´).text; finally valor_total_venda.Close; end; end;
GOSTEI 0
Ricieri
03/04/2006
cara, funcionou!
valeu!
valeu!
GOSTEI 0