FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problema con un query con Ado
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Problema con un query con Ado
Posted: Mon Nov 11, 2024 04:49 PM
Necesito ejecutar un query con harbour, fwh y mssqlserver con ADO.
Usando Heidisql, el query se ejecuta correctamente.
Cuando intento hacerlo con mi programa, el query aparece vacio.
No puedo darme cuenta que hago mal, si alguien pudiera ayudarme les agradezco.

Aca va el codigo que reproduce el error y una captura de heidisql ejecutando el que creo es el mismo script

Agradezco la ayuda que puedan brindarme, seguramente es algo que ignoro o un error, pero no puedo encontrarlo.

Gracias a todos desde ya.
Code (fw): Select all Collapse
#include "Fivewin.ch"
#include "AdoDef.ch"

FUNCTION Santi1()
     LOCAL oCn2, cSql, oRs2
     
     wfecha:= Dtos( Ctod( '07/11/2024' ) )
     
     oCn2 := FW_OpenADOConnection( "MSSQL, 192.168.150.206, SarubbiAlba, sa, Came0300", .t. )
     
     cSql := "DECLARE @fecha char(8) = '" + wfecha + "' " + CRLF + ;
     "SELECT m1.tropanumero AS tropa, m1.correlativo, ani.descripcion, m1.inac AS INACUR, "  + CRLF + ;   
     "ROUND( t.kilosen1 / t.cabezas , 2) AS KEnPie, m1.kilos + isnull(m2.kilos,0) AS KClasif, m1.precioen2 "  + CRLF + ;
     "FROM C10304 m1 "  + CRLF + ;
     "INNER JOIN P0021 ani ON ani.codigo = m1.tipodeanimal " + CRLF + ;
     "INNER JOIN C10204 t ON t.ano = m1.tropaano AND t.numero = m1.tropanumero  " + CRLF + ;
     "OUTER APPLY ( SELECT * from C10304 m2 where m2.fecha = m1.fecha AND " + CRLF + ;
     "m2.lineadeproduccion = m1.lineadeproduccion AND m2.correlativo = m1.correlativo AND m2.mediares = 2 ) m2 " + CRLF + ;
     "WHERE m1.fecha = @fecha and m1.tipoderegistro = 4 and m1.mediares = 1 order by m1.correlativo ; "
     
     oRs2 := FW_OpenRecordSet( oCn2, cSql )

     xbrowse( oRs2 )
     
RETURN nil

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 114
Joined: Fri Nov 24, 2006 09:03 PM
Re: Problema con un query con Ado
Posted: Mon Nov 11, 2024 08:55 PM

wfecha:=Dtos(Ctod('07/11/2024'))

Text Into cSql

 SELECT m1.tropanumero AS tropa, m1.correlativo, ani.descripcion,

        m1.inac AS INACUR,ROUND( t.kilosen1 / t.cabezas , 2) AS KEnPie,

        m1.kilos + isnull(m2.kilos,0) AS KClasif, m1.precioen2

 FROM C10304 m1

 INNER JOIN P0021 ani ON ani.codigo = m1.tipodeanimal

 INNER JOIN C10204 t ON t.ano = m1.tropaano AND t.numero = m1.tropanumero

 OUTER APPLY ( SELECT * from C10304 m2 where m2.fecha = m1.fecha AND

               m2.lineadeproduccion = m1.lineadeproduccion AND

               m2.correlativo = m1.correlativo AND m2.mediares = 2 ) m2

 WHERE m1.fecha = wfecha and m1.tipoderegistro = 4 and m1.mediares = 1

 order by m1.correlativo

EndTtext

cSql:=StrTran(Sql,'wfecha',wfecha)

Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Problema con un query con Ado
Posted: Tue Nov 12, 2024 10:21 AM

Gracias por tu ayuda, jacgsoft

Lo probé pero obtuve el mismo resultado, un browse vacío.

Es extraño porque nunca había tenido problemas de este tipo, y no es el script porque funciona perfectamente al ejecutarlo en Heidisql.

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Problema con un query con Ado
Posted: Tue Nov 12, 2024 11:10 AM
jose_murugosa wrote:Gracias por tu ayuda, jacgsoft
Lo probé pero obtuve el mismo resultado, un browse vacío.

Es extraño porque nunca había tenido problemas de este tipo, y no es el script porque funciona perfectamente al ejecutarlo en Heidisql.
Trata con fecha "2024-11-07"

Algunas veces la consulta se ve bien en heidi o navicat, pero en nuestro PRG no funciona. Me ha pasado.

El manejo de fechas en sql tiene sus detalles, yo me hice una funcion donde toda fecha la lleva a un string con este formato "2024-11-07" asi es como lo entiende sql.
"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Problema con un query con Ado
Posted: Tue Nov 12, 2024 12:09 PM
JoseAlvarez wrote:
Gracias por tu ayuda, jacgsoft
Lo probé pero obtuve el mismo resultado, un browse vacío.

Es extraño porque nunca había tenido problemas de este tipo, y no es el script porque funciona perfectamente al ejecutarlo en Heidisql.
Trata con fecha "2024-11-07"

Algunas veces la consulta se ve bien en heidi o navicat, pero en nuestro PRG no funciona. Me ha pasado.

El manejo de fechas en sql tiene sus detalles, yo me hice una funcion donde toda fecha la lleva a un string con este formato "2024-11-07" asi es como lo entiende sql.
Gracias tocayo querido, por siempre estar aportando y ayudando.
Lo probé, pero el resultado fué el mismo.

Lo curioso es que tengo hechos varios querys sobre estas tablas de la misma manera y sin problemas, y este es el que me vuelve loco :D
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Problema con un query con Ado
Posted: Tue Nov 12, 2024 05:38 PM

José:

A mi me parece que si el recordset se muestra vacío es porque alguna condición

no se cumple, sugiero revises por ahí.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Problema con un query con Ado
Posted: Tue Nov 12, 2024 06:07 PM
Armando wrote:José:

A mi me parece que si el recordset se muestra vacío es porque alguna condición
no se cumple, sugiero revises por ahí.

Saludos
Armando,
Gracias por responder.

Es lo que pensaba, pero si ves el primer mensaje, verás que el mismo query lo ingreso en Heidisql y se ejecuta perfectamente sin modificaciones.
También da lo mismo si la fecha se pone 20241109 o '20241109' con comillas simples.
Pero en el query no funciona siendo escrito exactamente igual.
Ni con, ni sin comillas simples en la fecha.

Nunca me había pasado, por lo general escribo mis querys en Heidi, porque puedo detectar cualquier error en los mismos y cuando estoy satisfecho del resultado los copio y pego en mi programación sin tener problemas, pero en este caso
no funcionó.

No dudo que quizá se me esté escapando la tortuga...... :)
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Problema con un query con Ado
Posted: Tue Nov 12, 2024 06:19 PM
José:

Con el único afán de apoyar, te muestro como lo hago yo con ADO y MySql,
ahí puedes ver la clausula BETWEEN
Code (fw): Select all Collapse
   FW_ReOpenRecordSet(oRsExp,oApp:oCon,"SELECT " +;
                                          "*," +;
                                          "PRO_NOM," +;
                                          "CON_DES " +;
                                       "FROM " +;
                                          "HdrOdc " +;
                                       "LEFT JOIN " +;
                                          "Proveedores " +;
                                       "ON " +;
                                          "HDR_PRV = Proveedores.PRO_NUM " +;
                                       "LEFT JOIN " +;
                                          "Conceptos " +;
                                       "ON " +;
                                          "HDR_NI1 = Conceptos.CON_NI1 " +;
                                       "AND " +;
                                          "HDR_NI2 = Conceptos.CON_NI2 " +;
                                       "AND " +;
                                          "HDR_NI3 = Conceptos.CON_NI3 " +;
                                       "AND " +;
                                          "HDR_NI4 = Conceptos.CON_NI4 " +;
                                       "AND " +;
                                          "HDR_NI5 = Conceptos.CON_NI5 " +;
                                       "WHERE " +;
                                          "HDR_FDE BETWEEN " + DToS(dFecIni) + " AND " + DToS(dFecFin) + " " +;      <======== AQUI
                                       "ORDER BY " +;
                                          "HDR_ODC",adLockOptimistic,adOpenDynamic,0)
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Problema con un query con Ado
Posted: Wed Nov 13, 2024 10:41 AM

Muchas gracias Armando,

Voy a probar.

Hay huchas maneras de pasar un script, espero probando hallar cual es el problema con este que me trae al foro.

Toda ayuda sirve.

Muchas gracias por tu afán de colaborar, te aviso de los resultados.

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 61
Joined: Wed Jul 26, 2023 12:08 PM
Re: Problema con un query con Ado
Posted: Wed Nov 13, 2024 01:29 PM

Hi Everyone,

In my opinion,

You are supposed to finish your sql commands for mysql and maria database always adding with one more semicolon ";"

Please try this again.

Best regards,

Ertan

Best regards,
Ertan,

ertan_ozturk@yahoo.com
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Problema con un query con Ado
Posted: Wed Nov 13, 2024 02:56 PM
José, quizás con la consuta un poco más ordenada, lo podamos ver mejor

Code (fw): Select all Collapse
cSql := "DECLARE @fecha char(8) = '" + wfecha + "' "            + CRLF 

cSql += "SELECT  "                                              + CRLF

cSql += "m1.tropanumero AS tropa, "                             + CRLF 
cSql += "m1.correlativo, "                                      + CRLF
cSql += "ani.descripcion, "                                     + CRLF
cSql += "m1.inac AS INACUR, "                                   + CRLF    
cSql += "ROUND( t.kilosen1 / t.cabezas , 2) AS KEnPie, "        + CRLF
cSql += "m1.kilos + isnull(m2.kilos,0)      AS KClasif, "       + CRLF 
cSql += "m1.precioen2 "                                         + CRLF

cSql += "FROM "                                                 + CRLF

cSql += "C10304 m1 "                                            + CRLF 

cSql += "INNER JOIN "                                           + CRLF  

cSql += "P0021 ani ON ani.codigo = m1.tipodeanimal "            + CRLF 

cSql += "INNER JOIN "                                           + CRLF 

cSql += "C10204 t  ON t.ano = m1.tropaano AND "                 + CRLF
cSql += "t.numero = m1.tropanumero "                            + CRLF 
cSql += "OUTER APPLY ( SELECT * from C10304 m2 "                + CRLF 

cSql += "WHERE "                                                + CRLF 

cSql += "m2.fecha = m1.fecha AND "                              + CRLF
cSql += "m2.lineadeproduccion = m1.lineadeproduccion AND "      + CRLF
cSql += "m2.correlativo = m1.correlativo AND "                  + CRLF
cSql += "m2.mediares = 2 ) m2 "                                 + CRLF 

cSql += "WHERE "                                                + CRLF 

cSql += "m1.fecha = @fecha and m1.tipoderegistro = 4 AND "      + CRLF
cSql += "m1.mediares = 1 "                                      + CRLF
cSql += "ORDER BY m1.correlativo ; "
Prueba dos cosas a ver:
1. coloca en esta linea un ";" al final
Code (fw): Select all Collapse
cSql := "DECLARE @fecha char(8) = '" + wfecha+"' ;" + CRLF
2.- Si no resulta, prueba haciendo la primera linea como un query independiente
Code (fw): Select all Collapse
cSql := "DECLARE @fecha char(8) = '" + wfecha+"' "
y luego otro query con el resto de la consulta.
"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Problema con un query con Ado
Posted: Thu Nov 14, 2024 03:51 PM

Muchas gracias por vuestros aportes.

Finalmente creo que di con el problema, se trataba de un malvado espacio que faltaba al copiar y pegar.

De todos modos vuestras sugerencias han sido muy enriquecedoras y de hecho, he aprendido formas mucho más eficientes de escribir mis querys.

Agradezco infinitamente buestra bondad y paciencia y aprovecho para desearles lo mejor para estas fiestas tradicionales que ya están en la puerta....

Un fuerte abrazo

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Problema con un query con Ado
Posted: Thu Nov 14, 2024 04:00 PM
yo apenas iba sugerir que consultaras con un ingeniero en sistemas :D :lol:
Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Problema con un query con Ado
Posted: Thu Nov 14, 2024 04:27 PM
jose_murugosa wrote:Muchas gracias por vuestros aportes.
Finalmente creo que di con el problema, se trataba de un malvado espacio que faltaba al copiar y pegar.
De todos modos vuestras sugerencias han sido muy enriquecedoras y de hecho, he aprendido formas mucho más eficientes de escribir mis querys.

Agradezco infinitamente buestra bondad y paciencia y aprovecho para desearles lo mejor para estas fiestas tradicionales que ya están en la puerta....

Un fuerte abrazo
Que bien !! me contenta que hayas resuelto.

¡ Eso es lo divertido de programar ! :lol: :lol:
"Los errores en programación, siempre están entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Problema con un query con Ado
Posted: Fri Nov 15, 2024 01:20 PM
sysctrl2 wrote:yo apenas iba sugerir que consultaras con un ingeniero en sistemas :D :lol:
Tienes razón, como se dice vulgarmente..... "se me escapó la tortuga" :lol:
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"