FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problemas con la clase FWMariadb (RESUELTO)
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Problemas con la clase FWMariadb (RESUELTO)
Posted: Wed Aug 27, 2025 12:12 PM
Buenos días a todos!!

Bueno, como siempre con algun problemilla para consultar.
Me gusta en general aprovechar el poder de MySql para armar querys que desplieguen directamente lo que necesito.
Me resulta práctico y rápido en general.
Además puedo valerme de la IA para optimizarlos y darles el mejor desempeño.

Pero.........

Me sucede a veces que un query que lo puedo ejecutar desde cualquier administrador de bases de datos, ejemplo Heidi SQL, me devuelve un recordset vacío con la clase nativa de Fivewin para MySQL.

Aquí un ejemplo:
WITH ent AS (
               SELECT 
                    carcasa,
                    codigo,
                    descripcion,
                    peso,
                    ROW_NUMBER() OVER (
                         PARTITION BY carcasa 
                         ORDER BY ffaena, carcasa, media, codigo
                    ) AS rn
               FROM EntdesoInforme
               )
               SELECT
               h.fechafaena,
               h.nroprod,
               h.productor,
               h.nrocon,
               h.consignatario,
               h.dicoseorigen,
               h.departamento,
               h.anio,
               h.ntropa,
               h.corrfaena,
               h.dotno,
               h.categoria,
               h.kgenpie,
               h.kgen3ra,
               h.kgen4ta,
               h.kdressing,
               (h.kdressing / NULLIF(h.kgenpie,0)) * 100 AS pdressing,
               h.kgmach,
               (h.kgmach / NULLIF(h.kgenpie,0)) * 100 AS pmach,
               h.udsmach,
               h.rend,
               h.ritual,
               h.hilton,
               h.uds2da,
               h.cotizacion, 
               h.valorfletepesos,
               h.valorfleteuds,
               (h.valorfleteuds / NULLIF(h.kgenpie,0)) AS udsfletexkg,
               h.fleteacargo,
               h.comision,
               (h.comision / NULLIF(h.kgenpie,0)) AS comisionxkg,
               h.ivacomision,
               (h.ivacomision / NULLIF(h.kgenpie,0)) AS ivacomisionxkg,
               -- pivot de entdeso
               MAX(CASE WHEN e.rn = 1 THEN e.codigo END) AS codigo1,
               MAX(CASE WHEN e.rn = 1 THEN e.descripcion END) AS desc1,
               MAX(CASE WHEN e.rn = 1 THEN e.peso END) AS peso1,
               MAX(CASE WHEN e.rn = 2 THEN e.codigo END) AS codigo2,
               MAX(CASE WHEN e.rn = 2 THEN e.descripcion END) AS desc2,
               MAX(CASE WHEN e.rn = 2 THEN e.peso END) AS peso2,
               MAX(CASE WHEN e.rn = 3 THEN e.codigo END) AS codigo3,
               MAX(CASE WHEN e.rn = 3 THEN e.descripcion END) AS desc3,
               MAX(CASE WHEN e.rn = 3 THEN e.peso END) AS peso3,
               MAX(CASE WHEN e.rn = 4 THEN e.codigo END) AS codigo4,
               MAX(CASE WHEN e.rn = 4 THEN e.descripcion END) AS desc4,
               MAX(CASE WHEN e.rn = 4 THEN e.peso END) AS peso4
               FROM HaciendaInforme h
               LEFT JOIN ent e 
                    ON e.carcasa = h.corrfaena
               GROUP BY
                    h.fechafaena,
                    h.nroprod,
                    h.productor,
                    h.nrocon,
                    h.consignatario,
                    h.dicoseorigen,
                    h.departamento,
                    h.anio,
                    h.ntropa,
                    h.corrfaena,
                    h.dotno,
                    h.categoria,
                    h.kgenpie,
                    h.kgen3ra,
                    h.kgen4ta,
                    h.kdressing,
                    h.kgmach,
                    h.udsmach,
                    h.rend,
                    h.ritual,
                    h.hilton,
                    h.uds2da,
                    h.cotizacion, 
                    h.valorfletepesos,
                    h.valorfleteuds,
                    h.fleteacargo,
                    h.comision,
                    h.ivacomision;
Este script funciona perfectamente y se ejecuta en 2 segundos en HeidiSQL, sin embargo con la clase nativa de FW me devuelve un rowset vacío.

Alguien tiene idea de porque se produce este problema y como resolverlo?
Estoy haciendo algo mal?
El query no excede tiempo de ejecución y nada simplemente oCn:Rowset( cSql ) (donde cSql es el script arriba ) no devuelve nada.

Aprecio cualquier ayuda que me puedan brindar.

Se me ha ocurrido probar conectando a mysql con Ado, pero no se lo que es necesario para poder hacerlo, descargué el driver mysql connector odbc pero no pude.

Si alguien me pudiera indicar como hacerlo agradezco inmensamente.
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1067
Joined: Wed Nov 09, 2005 02:17 AM
Re: Problemas con la clase FWMariadb (Como usar con ADO )
Posted: Wed Aug 27, 2025 01:26 PM

Hi Jose,

I think this problem is a result of libmysql.dll version, since MySql 5.7 does not support window functions like PARTITION BY, RANK(), etc.

Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Problemas con la clase FWMariadb (Como usar con ADO )
Posted: Wed Aug 27, 2025 02:01 PM

Gracias Vilian,

Como podría conectar con ADO, cuales serían los pasos?

Como lo explico en otro post reciente no he podido hacerlo....

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Problemas con la clase FWMariadb (RESUELTO)
Posted: Wed Aug 27, 2025 03:21 PM

Bueno, pido mil disculpas y agradezco vuestra ayuda.

1) Aparentemente la lib de mysql y mariadb no resiste esta instrucción.

2) En cuanto a mi tema con Ado, descuido mío, había instalado el conector 64 bits en lugar del 32 bits.

Mil gracias por vuestra ayuda y comentarios.

Saludos/Regards,

José Murugosa

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

Continue the discussion