Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2011
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
ayuda consulta sql

resulta que tengo que sacar la fecha de ultimo pago de un cliente, para ello lo quiero hacer con la siguiente funcion;

Código Delphi [-]
procedure TFcobro.ultimo_pago;
var wcontrato_meses:string;
 wanio_ejercicio:string;
begin
 wanio_ejercicio:=FormatDateTime('yyyy',Date);
 wcontrato_meses:=Trim(Self.txtcontrato.Text);

 if wcontrato_meses<>'' then
  begin
    with fmodulo.Qry_Temp do
     begin
       sql.Clear;
       SQL.Add('SELECT contrato,anio, Max(Fecha) AS Fecha');
       sql.Add('from recibo');
       sql.Add('group by contrato,anio');
       sql.Add('(((having contrato)=:Pcontrato) and ((anio)=:Panio)');
       Parameters.ParamByName('Pcontrato').Value:=Trim(wcontrato_meses);
       Parameters.ParamByName('Panio').Value:=Trim(wanio_ejercicio);
       try
        Open;
        if not Fmodulo.Qry_Temp.IsEmpty then
         begin
          while not Fmodulo.Qry_Temp .Eof do
           begin
             self.L_ultimaFechaPago.Caption:=DateToStr(FieldByname('fecha').AsDateTime);
             Next;
           end;
         end;  
       except
        on e: EoleException do
         begin
          MessageDlg(Format('Error: %s    Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
         end;
       end;  
     end;  
  end;
end;

sin embargo, me muestra un error cuando paso los parametros que es el siguiente:

Error: Error de sintaxis (falta operado) en la expresión de consulta 'anio (((having contrato=?) and ((anio)=?)' codigo: -2147217900


no entiendo por que si ejecuto la consulta desde el analizador de consultas no tengo problemas.


que creen que pueda ser, de antemano muchas gracias por tomarse el tiempo para leer este mensaje.
Responder Con Cita
  #2  
Antiguo 09-02-2011
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Hola.

¿Has visto como queda construida la orden SQL antes de que se ejecute la línea con el "open"?. Por ejemplo con un showmessage. Quizás te muestre un error que te ha pasado desapercibido.

Saludos.
Responder Con Cita
  #3  
Antiguo 09-02-2011
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
Gracias

Me Respondo, revisando la consulta tuve un error grave, quedo de la siguiente manera el error lo pongo en engritas y otro color.
Código Delphi [-]
procedure TFcobro.ultimo_pago;
var wcontrato_meses:string;
 wanio_ejercicio:string;
begin
 wanio_ejercicio:=FormatDateTime('yyyy',Date);
 wcontrato_meses:=Trim(Self.txtcontrato.Text);

 if wcontrato_meses<>'' then
  begin
    with fmodulo.Qry_Temp do
     begin
       sql.Clear;
       SQL.Add('SELECT contrato,anio, Max(Fecha) AS Fecha');
       sql.Add('from recibo');
       sql.Add('group by contrato,anio');
       sql.Add('having (((contrato)=:Pcontrato) and ((anio)=:Panio))');
       Parameters.ParamByName('Pcontrato').Value:=Trim(wcontrato_meses);
       Parameters.ParamByName('Panio').Value:=Trim(wanio_ejercicio);
       try
        //open;
        Self.txt2.Text:=SQL.Text;
        Open;
        if not Fmodulo.Qry_Temp.IsEmpty then
         begin
          while not Fmodulo.Qry_Temp .Eof do
           begin
             self.L_ultimaFechaPago.Caption:=DateToStr(FieldByname('Fecha').AsDateTime);
             Next;
           end;
         end;  
       except
        on e: EoleException do
         begin
          MessageDlg(Format('Error: %s    Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
         end;
       end;  
     end;  
  end;
end;

Última edición por microbiano fecha: 09-02-2011 a las 18:42:48. Razón: cambiar fuente
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
Ayuda con consulta... Jose Roman SQL 3 15-01-2010 20:37:32
Ayuda con consulta. sargento elias SQL 5 09-06-2008 15:15:33
ayuda en una consulta please lakers MySQL 5 15-04-2008 23:53:23
Ayuda con una consulta SQL agova SQL 13 29-08-2005 17:06:15
Ayuda con consulta!! PINO72 Firebird e Interbase 1 17-10-2004 04:54:48


La franja horaria es GMT +2. Ahora son las 20:19:25.


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