SQL no oncalcfield, o que está errado

Delphi

10/03/2003

O que estou querendo fazer é calcular todos os cheques que estão aparencedo no DBGRID.
Criei um campo calculado com o nome de TCheques, e o que está errado?

Query3.Close;
Query3.SQL.Clear;
Query3.SQL.Add(´SELECT SUM( Valor ) TCheques FROM Cheque ´);
Query3.ExecSQL;


Consorte

Consorte

Curtidas 0

Respostas

Anonymous

Anonymous

10/03/2003

ao inves de usar execsql, use open...


GOSTEI 0
Consorte

Consorte

10/03/2003

ao inves de usar execsql, use open...


procedure TFEmp.Query2CalcFields(DataSet: TDataSet);
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add(´SELECT SUM( Valor ) as TCheques FROM Cheque ´);
Query2.Open;
end;


GOSTEI 0
Consorte

Consorte

10/03/2003

[quote:c78eefe040=´kotho´]ao inves de usar execsql, use open...


procedure TFEmp.Query2CalcFields(DataSet: TDataSet);
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add(´SELECT SUM( Valor ) as TCheques FROM Cheque ´);
Query2.Open;
end;[/quote:c78eefe040]


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

10/03/2003

[quote:70320fd8dd=´Consorte´][quote:70320fd8dd=´kotho´]ao inves de usar execsql, use open...


procedure TFEmp.Query2CalcFields(DataSet: TDataSet);
begin
Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add(´SELECT SUM( Valor ) as TCheques FROM Cheque ´);
Query2.Open;
end;[/quote:70320fd8dd][/quote:70320fd8dd]
Consorte,

Analise o código e veja o seguinte. No evento OnCalcFields você está fechando a própria consulta (Query2), não tem como funcionar.

Faça o seguinte:

Crie uma query para obter o total e uma variável privada (conforme o caso), como já foi feito:

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´SELECT SUM( Valor ) as TCheques FROM Cheque ´);
Query1.Open;

nTotal := Query1TCheques.AsCurrency;

Crie uma outra query com a consulta desejada e com o fields editor adicione o campo calculado. A partir daí você pode, por exemplo:
.
.
.
Query2.Open;

procedure TFEmp.Query2CalcFields(DataSet: TDataSet);
begin
Query2CMP_CALCULADO.Value := nTotal; //
end;


GOSTEI 0
POSTAR