Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Envio de Parametros (https://www.clubdelphi.com/foros/showthread.php?t=96268)

Eduard23 19-06-2023 20:41:09

Envio de Parametros
 
Buenas amigos necesito de su valiosa ayuda tengo un query para obtener de una tabla en mysql la suma de sus valores el problema esta en que no toma los parametros que le envio.
este es el query

Código Delphi [-]
 Var  
  Primer,Ultimo,Fechah:  TdateTime;
  DD,MM,YY : Word;
Begin
 Fechah:= Now();
 DecodeDate(Fechah,YY,MM,DD);
 Primer:=EncodeDate(YY,MM,1);
 Ultimo:= EndOfAMonth(YearOf(Fechah), MonthOf(Fechah));
 QryBCompro.SQL.Clear;
 QryBCompro.Sql.Add('Select Codigo,Nombre,Nivel,');
 QryBCompro.Sql.Add('Sum(If(MyRenCon.Fecha_Asi< :Primer,MyRenCon.Debe-MyRenCon.Haber,0)) as Saldo_Ant,');
 QryBCompro.Sql.Add('Sum(If(MyRenCon.Fecha_Asi>=:Primer and MyRenCon.Fecha_Asi<= :Ultimo,MyRenCon.Debe,0)) as Debe,');
 QryBCompro.Sql.Add('Sum(If(MyRenCon.Fecha_Asi>=:Primer and MyRenCon.Fecha_Asi<= :Ultimo,MyRenCon.Haber,0)) as Haber,');
                                Data4.Data.QryBCompro.Sql.Add('Sum(If(MyRenCon.Fecha_Asi< :Primer,MyRenCon.Debe- 
                                MyRenCon.Haber,0))+Sum(If(MyRenCon.Fecha_Asi>= :Primer');
 QryBCompro.Sql.Add(' and MyRenCon.Fecha_Asi<=  :Ultimo,MyRenCon.Debe,0))-Sum(If(MyRenCon.Fecha_Asi>= :Primer and 
                                MyRenCon.Fecha_asi< :Ultimo,MyRenCon.Haber,0)) as Saldo ');
 QryBCompro.Sql.Add('From MyCtaCon Left Join MyRenCon on MyCtaCon.Codigo=MyRenCon.Codmov Group by MyCtaCon.Codigo Order By 
                               MyCtaCon.Codigo');
 QryBCompro.Parameters.ParamByName('Primer').Value := Primer;
 QryBCompro.Parameters.ParamByName('Ultimo').Value := Ultimo;

solo la columna saldo anterior trae valores correctos las columnas debe,haber,saldo vienen en 0
si sustituyo los parametros primer y ultimo en el query por por ejemplo primer:='2023-05-01' y ultimo '2023-05-31' la consulta sale perfecta
les agradeceria su valiosa ayuda ya llevo dias en esto y no se que hacer.
Saludos

Neftali [Germán.Estévez] 20-06-2023 08:22:22

Te recomiendo que revises la Guía de estilo de los foros.
Intenta colocar los mensajes (como este) en los foros adecuados. Este lo has puesto en el foro de trucos (ya lo muevo al foro de SQL).
Por último, cuando añadas código a tus mensajes añade TAG's.

Eduard23 20-06-2023 18:08:55

si gracias neftali estare mas pendiente la proxima vez
Saludos

aposi 20-06-2023 18:55:42

Hola, prueba dos cosas:
Separa el parametro :Primer

Código Delphi [-]
QryBCompro.Sql.Add('Sum(If(MyRenCon.Fecha_Asi>= :Primer and MyRenCon.Fecha_Asi<= :Ultimo,MyRenCon.Debe,0)) as Debe,');
QryBCompro.Sql.Add('Sum(If(MyRenCon.Fecha_Asi>= :Primer and MyRenCon.Fecha_Asi<= :Ultimo,MyRenCon.Haber,0)) as Haber,');


Pasa el parametro como AsDate, no como value
Código Delphi [-]
 QryBCompro.Parameters.ParamByName('Primer').AsDate := Primer; 
 QryBCompro.Parameters.ParamByName('Ultimo').AsDate := Ultimo;

Eduard23 21-06-2023 01:32:50

Gracias por tu ayuda pero no se porque me da error (Undeclared indentifier: 'AsDate')al tratar de definir el parametro AsDate, Supongo me debe estar faltando algo.
Alguna Sugerencia.

Gracias de antemano

kuan-yiu 29-06-2023 08:58:02

Prueba con AsDateTime


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

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