Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   campo calculado (sum) no existe (https://www.clubdelphi.com/foros/showthread.php?t=76237)

anubis 18-10-2011 13:49:19

campo calculado (sum) no existe
 
Hola de nuevo,

Tengo las siguientes lineas y no se que esta mal porque al ejecutar me dice que no existe el campo suma11

Código Delphi [-]
ZQUERY1.sql.clear;
ZQUERY1.SQL.Text:='select sum(cmonto) as suma11 FROM tcheques';
ZQUERY1.active:=true;
LABEL2.CAPTION:=FloatToStrF((ZQUERY1.fieldbyname('suma11').asfloat),ffcurrency,8,2);

Ya estuve investigando en el foro respecto a esto y al parecer es la misma estructura.

Lo había usado en otro programa y si funcionaba.

Uso sqlite3.

saludos y gracias

marcoszorrilla 18-10-2011 15:28:59

Prueba esto a ver.
Código Delphi [-]
Var
n:  Double;
ZQUERY1.sql.clear; ZQUERY1.SQL.Text:='select sum(cmonto) as suma11 FROM tcheques'; ZQUERY1.active:=true; 
N:=ZQUERY1.fieldbyname('suma11').asfloat;
LABEL2.CAPTION:=FloatToStrF(n,ffcurrency,8,2);
Un Saludo.

anubis 18-10-2011 16:28:17

Gracias por el interes.

La verdad es que he probado de varias formas y no hay manera que me lo reconozca como campo.
Estoy probando con un form nuevo y solo he puesto lo necesario para probar,

lo raro es que en otra aplicacion (que en su dia pregunte) me funcionaba sin problema.

algo me falta o me sobra o nose.

No creo que sea cosa del sqlite3 o si, inclusive he quitado el autocalcfields pero nada, asi que lo volvi a dejar como estaba.

que cosas me pasan!!!!!!

marcoszorrilla 18-10-2011 16:31:04

A ver si va a ser sensible a mayúsculas, prueba SUMA11.

Un Saludo.

anubis 18-10-2011 17:04:58

Ya lo probe pero seguia igual.

Ya averigue lo que paso realmente:

Si no edito los campos en el zquery1, si me lo reconoce el campo "extra", pero si los edito, al no figurar el campo extra pues da error.

lo que no entiendo entonces:
Código Delphi [-]
ZQUERY1.sql.clear;
ZQUERY1.SQL.Text:='select sum(cmonto) as suma11 FROM tcheques';
ZQUERY1.open;
LABEL2.CAPTION:=FloatToStrF(zquery1.Fieldbyname('suma11').asfloat,ffcurrency,8,2);
ZQUERY1.SQL.Clear;
ZQUERY1.SQL.TEXT:='select * from tcheques';
zquery1.active:=true;


porque despues de asignar el campo suma, tengo que volver a poner todo el select para ver todos los registros.

oscarac 18-10-2011 17:12:26

has una cosa

dale doble click al componente del query y agregale el campo suma11
luego comentas

ecfisa 18-10-2011 19:13:12

Hola.

Una manera que desligará cualquier problema con la consulta de tu query (ZQUERY1) es hacerte una función y dentro de ella crear una consulta al vuelo.
No conozco los componentes Zeos de modo que te hago un ejemplo con IBX. Quizá debas reemplazar el nombre de alguna propiedad, pero creo que en líneas generales da la idea:
Código Delphi [-]
function SumarCheques: Double;
begin
  with TIBQuery.Create(nil) do // aca iría TZQuery.Create(nil)
  try
    Database:= DataModule1.IBDatabase; // aca iría  tu componente database 
    SQL.Text:= 'SELECT SUM(CMONTO) AS MONTOTOTAL FROM TCHEQUES';
    Open;
    Result:= FieldByName('MONTOTOTAL').AsFloat;
  finally
    Free;
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
   ShowMessage(FloatToStr(SumarCheques));

Un saludo.

anubis 18-10-2011 20:59:02

Amigos, ya esta solucionado,

la solucion estriba, como me comentais, en añadirle un campo al query, y con eso ya esta.

La pregunta es si esto mismo, de añadir y ligar campos se pueda hacer directamente por codigo en vez de usar el dobleclick en el query.

gracias a todos por vuestras prontas respuestas


La franja horaria es GMT +2. Ahora son las 08:39:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi