Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-07-2024
Eduard23 Eduard23 is offline
Miembro
 
Registrado: mar 2023
Posts: 32
Poder: 0
Eduard23 Va por buen camino
LoadFromFile

Buenas amigos del foro necesitando de su valiosa ayuda.
tengo una aplicacion contable con sus informes funcionando perfectamente, el tema es que quiero pasar los informes que los tengo programados directamente en el codigo delphi a un archivo txt. Uso MySql.

Archivo Txt

Código SQL [-]
Select Codigo,Nombre,Nivel,Length(Trim(NxCtacon.Codigo)) as Longitud,Detalle,
Sum(If(NxRenCon.Fecha_Asi Between :cFechad and :cFechah,NxRenCon.Debe,0)) as Debe,
Sum(If(NxRenCon.Fecha_Asi Between :cFechad and :cFechah,NxRenCon.Haber,0)) as Haber
From NxCtaCon Left Join NxRenCon On NxCtaCon.Codigo=NxRenCon.Codmov
Where Debe-Haber<>0 and Nxctacon.Detalle="S" and NxCtacon.Nivel<=:Niv
Group By NxCtaCon.Codigo Order By NxCtaCon.Codigo

codigo que esta en la fuente para ejecutar el txt

Código Delphi [-]
With QryLibroDiario do
  Begin
   Sql.Clear;
   Sql.LoadFromFile(Path);
   QryLibroDiario.Parameters.ParamByName('cFechad').Value := cFechad;
   QryLibroDiario.Parameters.ParamByName('cFechah').Value := cFechah;
   QryLibroDiario.Parameters.ParamByName('Niv').Value := Niv;
   Open;
  End;

la variable path contiene la ruta y el nombre del archivo txt que coloque arriba.
cFechad: contiene la fecha desde donde quiro la consulta asi vienen los valores por ejemplo 2024-06-01
cFechah: contiene la fecha hasta donde quiero la consulta. 2024-06-30
niv : contiene el nivel maximo a mostrar. 6
los tres parametros son caracter.

ahora les explico cual es el problema.

en la tabla hay tanto valores para la columna del debe como la del haber, el detalle esta que cuando ejecuto la consulta incluida en el txt la columna del debe trae los valores correctos, pero la del haber solo trae Cero.

esto me trae de cabezas ya no se que hacer porque si se fijan en el txt las dos colun=mnas las trato de la misma forma

agradeciendo de su valioza ayuda

Última edición por delphi.com.ar fecha: 05-07-2024 a las 18:30:51. Razón: Se agregó la etiqueta DELPHI para facilitar la lectura.
Responder Con Cita
  #2  
Antiguo 05-07-2024
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.955
Poder: 28
delphi.com.ar Va camino a la fama
Yo probaría hacer una consulta mas simple para ver si no te están mareando los datos, algo como:
Código SQL [-]
      SELECT NxCtaCon.Codigo, SUM(NxRenCon.Debe) as Debe, SUM(NxRenCon.Fecha_Asi) as Haber
        FROM NxCtaCon 
   LEFT JOIN NxRenCon ON NxCtaCon.Codigo=NxRenCon.Codmov AND NxRenCon.Fecha_Asi Between :cFechad and :cFechah
       WHERE Debe-Haber <> 0 
         AND Nxctacon.Detalle = "S" 
         AND NxCtacon.Nivel <= :Niv
    GROUP BY NxCtaCon.Codigo 
    ORDER BY NxCtaCon.Codigo
Si eso te da en cero, entonces la consulta anteiror es correcta, y posiblemente alguno de los filtros te está limitando los registros con datos en el haber.

Ojo que estas incluyendo campos que no pertenecen al grupo, eso no fuciona en todos los motores ni en todas las versiones de MySql.

PD: ¿Qué tiene que ver el título "LoadFromFile"?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 05-07-2024
Eduard23 Eduard23 is offline
Miembro
 
Registrado: mar 2023
Posts: 32
Poder: 0
Eduard23 Va por buen camino
gracias Federico Firenze por tu rapida respuesta pero ya consegui el problema mas no la solucion un gran amigo me ayudo con una rutina y con esto detecte el problema.
te cuento. que la rutina que mi amigo manel me envio es para saber el nombre del parametro que envio a la consulta y su valor.
funciona muy bien pero en la segunda vuelta me da el nombre del parametro bien pero al tratar de dame el valor del segundomparametro veo que se hace null y no entendo porque.

voy a tratar de explicarme mejor

For i := 0 to QryLibroDiario.Parameters.Count-1 do
ShowMessage('Parametro: '+QryLibroDiario.Parameters[i].Name+' Valor: '+QryLibroDiario.Parameters[i].Value);

esta rutina va diciendo el nombre del parametro y su valor, en elgun monento de la ejecucion el valor del primer parametro es decir
cFechad camvbia a null, lo cual no se porque ocurre porque el valor de ,los parametros no debe cambiar

le puse como titulo LoadFromFlile porque esto me funciona perfeectamente cuando lo hago en la programacion de delphi pero cuando intento hacerlo funckonar desde el txt me pasa este error

Saudos y sigo a la espera de una posible solucion
Responder Con Cita
  #4  
Antiguo 05-07-2024
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.955
Poder: 28
delphi.com.ar Va camino a la fama
Según tu propio código la estas asignando al ejecutar la consulta
Cita:
Código Delphi [-]
With QryLibroDiario do
  Begin
   Sql.Clear;
   Sql.LoadFromFile(Path);
   QryLibroDiario.Parameters.ParamByName('cFechad').Value := cFechad;
   QryLibroDiario.Parameters.ParamByName('cFechah').Value := cFechah;
   QryLibroDiario.Parameters.ParamByName('Niv').Value := Niv;
   Open;
  End;

Si es null, es proque la variable llegó en null, y el problema está en el código previo a eso, no en la consulta.

PD: No se ve en el código que el Sql que cargaste desde el archivo, se asigne a QryLibroDiario.

Saludos.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 05-07-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.405
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, para otras ocasiones procura poner títulos descriptivos a tus preguntas. Gracias.
Responder Con Cita
  #6  
Antiguo 05-07-2024
Eduard23 Eduard23 is offline
Miembro
 
Registrado: mar 2023
Posts: 32
Poder: 0
Eduard23 Va por buen camino
No se si es esto Federico Firenze

Fd := DatetoStr(Primer); Primer dia de mes 01/06/2024
Fh := DatetoStr(Ultimo); Ultimo dia Del mes 30/06/2024
Niv:= 6 en este caso
cFechad := Copy(Fd,7,4)+'-'+Copy(Fd,4,2)+'-'+Copy(Fd,1,2); con esto quedaria asi 2024-06-01
cFechah := Copy(Fh,7,4)+'-'+Copy(Fh,4,2)+'-'+Copy(Fh,1,2); 2024-06-30

Me imagino debe haber algo mas elegante pero tengo poco tiempo en el mundo del delphi
Responder Con Cita
  #7  
Antiguo 06-07-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.405
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, recuerda usar las etiquetas cuando pongas código. Gracias.


Responder Con Cita
  #8  
Antiguo 07-07-2024
Eduard23 Eduard23 is offline
Miembro
 
Registrado: mar 2023
Posts: 32
Poder: 0
Eduard23 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por favor, recuerda usar las etiquetas cuando pongas código. Gracias.


disculpen asi lo hare
Responder Con Cita
  #9  
Antiguo 07-07-2024
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.955
Poder: 28
delphi.com.ar Va camino a la fama
Cita:
Empezado por Eduard23 Ver Mensaje
No se si es esto Federico Firenze

Fd := DatetoStr(Primer); Primer dia de mes 01/06/2024
Fh := DatetoStr(Ultimo); Ultimo dia Del mes 30/06/2024
Niv:= 6 en este caso
cFechad := Copy(Fd,7,4)+'-'+Copy(Fd,4,2)+'-'+Copy(Fd,1,2); con esto quedaria asi 2024-06-01
cFechah := Copy(Fh,7,4)+'-'+Copy(Fh,4,2)+'-'+Copy(Fh,1,2); 2024-06-30

Me imagino debe haber algo mas elegante pero tengo poco tiempo en el mundo del delphi
No te conviene hacer eso, no tiene sentido parsear la fecha, cuando es mucho mas performante e independiente de problemas de regionalización, que envíes la fecha como fecha, o sea que envíes la variable Pimero y Último.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 07-07-2024
Eduard23 Eduard23 is offline
Miembro
 
Registrado: mar 2023
Posts: 32
Poder: 0
Eduard23 Va por buen camino
Muchas Gracias Federico Firenze , Seguire tu consejo
Responder Con Cita
  #11  
Antiguo 07-07-2024
Eduard23 Eduard23 is offline
Miembro
 
Registrado: mar 2023
Posts: 32
Poder: 0
Eduard23 Va por buen camino
Código SQL [-]
 With QryLibroDiario do
  Begin
   Sql.Clear;
   Sql.LoadFromFile(Path);
   QryLibroDiario.Parameters.ParamByName('Primer').Value := Primer;
   QryLibroDiario.Parameters.ParamByName('Ultimo').Value := Ultimo;
   QryLibroDiario.Parameters.ParamByName('cNiv').Value := cNiv;
   Open;
  End;

Cita:
Lo Puse segun tu sugerencia pero ahora primero y ultimo me toman valores enteros, convierte las fecha que le envio en valores enteros ???
Responder Con Cita
  #12  
Antiguo 07-07-2024
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 146
Poder: 20
aledieb Va por buen camino
Hola proba con:
Código Delphi [-]
   QryLibroDiario.Parameters.ParamByName('Primer').AsDate := Primer;  //Tipo variable TDate
   QryLibroDiario.Parameters.ParamByName('Ultimo').AsDate := Ultimo;  //Tipo variable TDate
__________________
Suerte
Alejandro
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
.picture.loadfromfile Roberto Solis Varios 4 16-02-2012 23:12:20
Problema con LoadFromFile sergiosantiago1 Gráficos 5 11-04-2008 17:02:47
problemas con el LoadFromFile sac OOP 14 19-07-2007 16:55:34
LoadFromFile con una progressbar Jesús Pena Varios 5 18-04-2007 20:19:24
Problemas con Picture.LoadFromFile Ohcan Varios 6 04-02-2005 23:29:34


La franja horaria es GMT +2. Ahora son las 09:23:07.


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