Fórum Somando em Select e jogando em dbedit #318260

03/04/2006

0

Pessoal, estou fazendo o seguinte:

[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

Ricieri

Responder

Posts

03/04/2006

Rjun

Coloque um trecho maior do seu código.


Responder

Gostei + 0

03/04/2006

Nasguone

Tente fazer uma procedure no proprio banco com parametro pegue esse parametro e jogue no dbedit


Responder

Gostei + 0

03/04/2006

Ricieri

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;


Responder

Gostei + 0

04/04/2006

Rjun

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.

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;



Responder

Gostei + 0

04/04/2006

Ricieri

cara, funcionou!
valeu!


Responder

Gostei + 0

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

Aceitar