type mismatch in expression! esse erro de novo
uso um banco de dados DBF
e toda a vez que chamo o evento
dá o seguinte errro:´ type mismatch in expression´
c1,d1,a1:Integer;
begin
som.Close;
som.SQL.Clear;
som.SQL.Add(´Select count(valor) as Hq,Sum(VALOR)As TOTAL´);
som.SQL.Add(´From VENDAS1´);
som.SQL.Add(´Where MES =´+MES1.Text);
som.Open;
a1:= som.fieldbyname(´TOTAL´).asInteger;
d1:= som.fieldbyname(´Hq´).asInteger;
Valo.Caption:=FormatFloat(´R$ #,,0.00 ´, a1);
Liq1.Caption:=FormatFloat(´R$ ,,0.00 ´, c1);
QNT1.Caption:=FormatFloat(´,,0´, d1);
som.Close;
e toda a vez que chamo o evento
dá o seguinte errro:´ type mismatch in expression´
c1,d1,a1:Integer;
begin
som.Close;
som.SQL.Clear;
som.SQL.Add(´Select count(valor) as Hq,Sum(VALOR)As TOTAL´);
som.SQL.Add(´From VENDAS1´);
som.SQL.Add(´Where MES =´+MES1.Text);
som.Open;
a1:= som.fieldbyname(´TOTAL´).asInteger;
d1:= som.fieldbyname(´Hq´).asInteger;
Valo.Caption:=FormatFloat(´R$ #,,0.00 ´, a1);
Liq1.Caption:=FormatFloat(´R$ ,,0.00 ´, c1);
QNT1.Caption:=FormatFloat(´,,0´, d1);
som.Close;
Well
Curtidas 0
Respostas
Anonymous
28/02/2003
Experimenta em vez de Integer, declara as variáveis como Double. E em vez de .asinteger use .asfloat
GOSTEI 0
Anonymous
28/02/2003
som.SQL.Add(´Select count(valor) as Hq,Sum(VALOR)[color=red:6cec6a5286] As [/color:6cec6a5286]TOTAL´);
GOSTEI 0
Aroldo Zanela
28/02/2003
uso um banco de dados DBF
e toda a vez que chamo o evento
dá o seguinte errro:´ type mismatch in expression´
c1,d1,a1:Integer;
begin
som.Close;
som.SQL.Clear;
som.SQL.Add(´Select count(valor) as Hq,Sum(VALOR)As TOTAL´);
som.SQL.Add(´From VENDAS1´);
som.SQL.Add(´Where MES =´+MES1.Text);
som.Open;
a1:= som.fieldbyname(´TOTAL´).asInteger;
d1:= som.fieldbyname(´Hq´).asInteger;
Valo.Caption:=FormatFloat(´R$ #,,0.00 ´, a1);
Liq1.Caption:=FormatFloat(´R$ ,,0.00 ´, c1);
QNT1.Caption:=FormatFloat(´,,0´, d1);
som.Close;
Caro Well,
Não há nada de errado com seu código, pois não é necessário um espaço entre o fechar parentese e o ´As´, bem como, os valores do tipo currency obtidos na consulta SQL são truncados para inteiro pelo método AsInteger.
A única ´coisa estranha´ é a declaração de C1 para inteiro e no fragmento enviado não há nenhuma atribuição para o mesmo.
Qual a versão do Delphi? Em que linha o depurador interrompe?
var i: Integer; begin query1.Close; query1.SQL.Clear; query1.SQL.Add(´SELECT sum(salary)as Salario´); query1.SQL.Add(´FROM Employee´); query1.SQL.Add(´WHERE EmpNo >= ´+Edit1.Text); query1.Open; i := query1.Fields[0].AsInteger; pnlValor.Caption := FormatFloat(´R$ ,0.00;R$ (,0.00)´,i);
Se algém mais quise ´tentar´, segue o DFM:
object Button1: TButton Left = 22 Top = 40 Width = 75 Height = 25 Caption = ´Button1´ TabOrder = 0 OnClick = Button1Click end object pnlValor: TPanel Left = 158 Top = 20 Width = 185 Height = 41 Caption = ´pnlValor´ TabOrder = 1 end object Edit1: TEdit Left = 56 Top = 90 Width = 121 Height = 21 TabOrder = 2 Text = ´Edit1´ end object Query1: TQuery DatabaseName = ´DBDEMOS´ Left = 258 Top = 104 end
GOSTEI 0
Cdaraujo
28/02/2003
Caro amigo,
O que tá acontecendo contigo, é que, vc está tentando somar uma coluna que não é número, pra vc usar esse tipo de função é necessário uma coluna do tipo número.
SELECT SUM(TIPO NÚMERO) FROM TABELA
Atenciosamente,
Daniel Araújo
ICQ:111769805
www.cdinformatica.hpg.com.br
O que tá acontecendo contigo, é que, vc está tentando somar uma coluna que não é número, pra vc usar esse tipo de função é necessário uma coluna do tipo número.
SELECT SUM(TIPO NÚMERO) FROM TABELA
Atenciosamente,
Daniel Araújo
ICQ:111769805
www.cdinformatica.hpg.com.br
uso um banco de dados DBF
e toda a vez que chamo o evento
dá o seguinte errro:´ type mismatch in expression´
c1,d1,a1:Integer;
begin
som.Close;
som.SQL.Clear;
som.SQL.Add(´Select count(valor) as Hq,Sum(VALOR)As TOTAL´);
som.SQL.Add(´From VENDAS1´);
som.SQL.Add(´Where MES =´+MES1.Text);
som.Open;
a1:= som.fieldbyname(´TOTAL´).asInteger;
d1:= som.fieldbyname(´Hq´).asInteger;
Valo.Caption:=FormatFloat(´R$ #,,0.00 ´, a1);
Liq1.Caption:=FormatFloat(´R$ ,,0.00 ´, c1);
QNT1.Caption:=FormatFloat(´,,0´, d1);
som.Close;
GOSTEI 0