FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Incompatibilidad tDolphin - IA - MySQl
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Incompatibilidad tDolphin - IA - MySQl
Posted: Mon Feb 10, 2025 09:58 PM
Saludos amigos.

He utilizado la inteligencia artificial para crear muchas consultas de mariadb y mysql. De verdad es fantástico y no tengo problemas en usarla. es una gran herramienta para todo, y si lo podemos aprovechar, ¿por qué no?

El caso es que me he encontrado que a veces las consultas funcionan perfecto en NAVICAT (podría ser cualquier otro administrador de BD) pero cuando lo llevo a FW+HARBOUR arroja error de sintaxis. Todo se copia tal cual y me aseguro de no tener errores de mi parte. pero nada, sigue arrojando el error 1064.

Revisando pude darme cuenta de algo, si se intenta ejecutar mas de una operación en una sola consulta no funciona. si las separo, funciona.
por ejemplo el DROP TEMPORARY TABLE IF EXIST seguido de otras instrucciones, no sirve. si lo ejecuto primero con un execute y luego el resto de la consulta en otra, si funciona.

el caso es que la IA me proporciona consultas donde usa cosas de mysql que ni sabia que existían, pero me dan lo que necesito. Solo que al llevarlo a harbour, no funciona. asi de simple.

uso tDolphin. ¿alguien tiene idea del porque de esto?

Se que la solución seria trabajarla por partes y/o quitarle esas cosas extras de mysql que usa la IA, pero quedaría en el mismo sitio de antes, y quiero aprovechar la ayuda.

aqui dejo el ejemplo de una consulta, solo para fines orientativos.
-- Eliminar la tabla temporal si ya existe
DROP TEMPORARY TABLE IF EXISTS temp_resultados;

-- Crear una tabla temporal para almacenar los resultados intermedios
CREATE TEMPORARY TABLE temp_resultados AS
SELECT 
    C.codigo_cliente, 
    C.razon_social_cliente, 
    M.codigo_medio, 
    M.nombre_medio, 
    D.fecha_pago, 
    D.code_clien, 
    D.numero_recibo, 
    D.doc_pagado, 
    D.monto, 
    D.doc_deleted
FROM 
    c32demo_clientes   AS C,
    c32demo_mediospago AS M,
    c32demo_desglose   AS D 
WHERE 
    C.codigo_cliente = D.code_clien 
    AND M.codigo_medio = D.codigo_medio 
    AND D.fecha_pago BETWEEN '2025-02-06' AND '2025-02-09' 
    AND D.doc_deleted <> '.T.'
ORDER BY 
    D.fecha_pago, 
    D.codigo_medio, 
    D.numero_recibo, 
    D.doc_pagado;

-- Consulta final con subtotales después del grupo de fecha_pago
SELECT fecha_pago, nombre_medio, codigo_medio, numero_recibos, total_doc_pagado, total_monto FROM (
    -- Datos principales
    SELECT 
        fecha_pago,
        nombre_medio, 
        codigo_medio, 
        COUNT(numero_recibo) AS numero_recibos, 
        SUM(doc_pagado) AS total_doc_pagado, 
        SUM(monto) AS total_monto,
        0 AS orden
    FROM temp_resultados
    GROUP BY fecha_pago, codigo_medio, nombre_medio 

    UNION ALL

    -- Filas de subtotales (colocadas después)
    SELECT 
        fecha_pago,
        'SUBTOTAL' AS nombre_medio,
        NULL AS codigo_medio,
        NULL AS numero_recibos,
        NULL AS total_doc_pagado,
        SUM(monto) AS total_monto,
        1 AS orden
    FROM temp_resultados
    GROUP BY fecha_pago
) AS final_query
ORDER BY fecha_pago, orden, codigo_medio, nombre_medio;
"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: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Incompatibilidad tDolphin - IA - MySQl
Posted: Tue Feb 11, 2025 10:22 PM

Estimado Jose,

Por lo que tengo entendido no todos los motores de bases de datos soportan la misma sintaxis SQL.

Al pedir una determinada sintaxis para una sentencia SQL especifícale el motor de base de datos a usar.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Incompatibilidad tDolphin - IA - MySQl
Posted: Wed Feb 12, 2025 12:02 AM

Saludos maestro.

Sí, siempre lo hago, le digo que trabajo en local con mariadb y en la nube con mysql. Siempre me dice "Ok, prepararé la consulta para que funcione en ambos"

Lo que si he comprobado por ejemplo es que tDolphin no acepta dos operaciones diferentes, un execute y un query en la misma consulta, por ejemplo un drop, create y select juntos, cosa que funciona perfecto en el generador de querys de navicat o cualquiera parecido.

"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: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Incompatibilidad tDolphin - IA - MySQl (Solucionado)
Posted: Thu Feb 13, 2025 08:39 PM
Amigos, como suele suceder, las soluciones a veces son las más simples.

Cuando se desea hacer una consulta mysql a la IA basta con decirle "Hazla adaptada para el lenguaje HARBOUR"

y listo... así de simple.

Un abrazo.

Les dejo la explicación de la IA:
Harbour es un lenguaje de programación muy potente y versátil, pero tiene algunas limitaciones al ejecutar consultas complejas y comandos avanzados de MySQL. Aquí te menciono algunas de ellas:

Compatibilidad limitada con MySQL: Aunque Harbour puede conectarse a bases de datos MySQL, no soporta todas las funcionalidades avanzadas de MySQL, como ciertas funciones de agregación, subconsultas y operaciones complejas de JOIN.

Rendimiento: Al ejecutar consultas complejas, el rendimiento puede ser inferior en comparación con otros lenguajes y herramientas especializadas en bases de datos.

Documentación y soporte: La documentación y el soporte para el uso de MySQL con Harbour pueden ser limitados, lo que puede dificultar la resolución de problemas y la implementación de soluciones avanzadas.

Actualizaciones y mantenimiento: Harbour no se actualiza tan frecuentemente como otros lenguajes modernos, lo que puede resultar en una menor compatibilidad con las últimas versiones y características de MySQL.

A pesar de estas limitaciones, Harbour sigue siendo una herramienta valiosa para aplicaciones de bases de datos y negocios, especialmente para aquellos familiarizados con el lenguaje Clipper.
"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: 298
Joined: Fri Oct 07, 2005 05:20 AM
Re: Incompatibilidad tDolphin - IA - MySQl
Posted: Thu Feb 13, 2025 11:06 PM

He leído tu publicación y la duda que tengo es la siguiente:

¿ Cuál fue la diferencia significativa entre la primer consulta que generaba error y la segunda que se ejecutaba de forma correcta ?

Vikthor
Posts: 1283
Joined: Fri Feb 10, 2006 02:34 PM
Re: Incompatibilidad tDolphin - IA - MySQl (Solucionado)
Posted: Thu Feb 20, 2025 01:53 PM
JoseAlvarez wrote: Amigos, como suele suceder, las soluciones a veces son las más simples.

Cuando se desea hacer una consulta mysql a la IA basta con decirle "Hazla adaptada para el lenguaje HARBOUR"

y listo... así de simple.

Un abrazo.

Les dejo la explicación de la IA:
No os creais todo lo que diga la IA...

C.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
HIX -> https://github.com/carles9000/hix
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Incompatibilidad tDolphin - IA - MySQl
Posted: Tue Feb 25, 2025 10:58 AM

If we want more than one SQL statement to work in a single Execution, we need to set MYSQL_OPTION_MULTI_STATEMENTS_ON or OFF.

Dolphin does not do it on its own.

FW MariaDB sets this while connecting to the server.

Regards



G. N. Rao.

Hyderabad, India
Posts: 476
Joined: Sat Feb 03, 2007 06:36 AM
Re: Incompatibilidad tDolphin - IA - MySQl
Posted: Wed Feb 26, 2025 01:32 PM
Hola,
Yo utilizo Eagle1 de Manu, y cuando hago la conexión a MySQL lo hago de esta forma:
oCon:Connect( "localhost", 'dbuser', 'psword',, nPort, , (65536 + 131072 + 67108864 + 4194304) )
/*
FLAG_USE_MYCNF (65536)
FLAG_SAFE (131072)
FLAG_MULTI_STATEMENTS (67108864)
FLAG_AUTO_RECONNECT (4194304)
*/
Por si sirve de algo.

Saludos cordiales.

Carlos

Continue the discussion