Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-06-2011
Avatar de Inon
Inon Inon is offline
Miembro
 
Registrado: may 2005
Posts: 27
Poder: 0
Inon Va por buen camino
Exclamation Probelma: Query con SUM no la reconoce delphi

Hola gente de Club Delphi, vengo ante ustedes con una duda:
tengo la siguientes instrucciones para crear un query:
Código:
Cadena:='SELECT SUM(costo) AS monto FROM mi_tabla';
Query2.SQL.Clear;
Query2.SQL.Add(Cadena);
Query2.ExecSQL;
LMonto.Caption:=Query2.FieldByName('monto').AsString;  <--Aqui esta el problema
costo es de tipo DECIMAL

y LMonto es tipo LAbel solo para mostrar la suma de todos los registros de la tabla.
pero me sale el siguiente error Query2: Field 'monto' not found.

lo raro es que en phpmyadmin si me muestra el resultado sin problemas.
Responder Con Cita
  #2  
Antiguo 22-06-2011
Avatar de Inon
Inon Inon is offline
Miembro
 
Registrado: may 2005
Posts: 27
Poder: 0
Inon Va por buen camino
Ya descubri el error:
Yo tenia esto:
Código:
Cadena:='SELECT SUM(costo) AS monto FROM mi_tabla';
Query2.SQL.Clear;
Query2.SQL.Add(Cadena);
Query2.ExecSQL;
LMonto.Caption:=Query2.FieldByName('monto').AsString;
Y el problema se corrigio activando la Query para que me reconozca el campo "monto", de tal forma que el codigo queda así:
Código:
Cadena:='SELECT SUM(costo) AS monto FROM mi_tabla';
Query2.SQL.Clear;
Query2.SQL.Add(Cadena);
Query2.ExecSQL;
Query2.Active:=True;  <-- Se activa para poder ver el campo "monto"
LMonto.Caption:=Query2.FieldByName('monto').AsString;
Query2.Active:=False;  <-- Se desactiva porque ya no se requiere
Bueno espero que a alguno le sirva, Saludos.
Responder Con Cita
  #3  
Antiguo 22-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código Delphi [-]
Query2.Close;
Query2.SQL.Text:='SELECT SUM(costo) AS monto FROM mi_tabla';
Query2.ExecSQL;
LMonto.Caption:=Query2.Fields[0].AsString;

Si quieres asignar el valor devuelto por el select entonces te vale mejor así.
Responder Con Cita
  #4  
Antiguo 22-06-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Hola.
Esto es redundante:
Código Delphi [-]
Query2.ExecSQL; //Puedes quitar esta línea de código
Query2.Active:=True;

__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #5  
Antiguo 22-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Inon.

Simplificando un poco y para redondear, las diferencias entre ExecSQL y Open (o Active:= True) son:

El método ExecSQL se usa para realizar consultas que no devuelven un resultado como por ejemplo: INSERT, UPDATE, DELETE, CREATE.

Para realizar consultas de las que esperamos devuelvan un resultado se debe usar el método Open o la propiedad Active.

La propiedad Active permite determinar o verificar si un TDataSet está abierto o cerrado. Llama a los métodos Open o Close según su valor sea puesto en True o False, por lo que también es redundante hacer:
Código Delphi [-]
  Query.Active:= True;
  Query.Open;
  // o 
  Query.Active:= False;
  Query.Close;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Funcion length de SQL no me la reconoce Delphi gulder SQL 5 10-11-2008 22:38:57
Delphi no me reconoce instrucciones atirukas Varios 5 16-06-2008 21:06:49
Instalo SQL Server 2000 pero el Delphi no lo reconoce.... Roilo MS SQL Server 4 17-05-2007 15:45:42
probelma con date en paradox ale21alito SQL 6 04-08-2005 04:03:15
Probelma con Trigger en FireBrid lgluna Firebird e Interbase 3 30-04-2004 01:09:50


La franja horaria es GMT +2. Ahora son las 13:26:27.


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