Página 1 de 1

Usando Mariadb para un cgi

Publicado: Lun Jun 09, 2025 3:44 am
por michaelp
Saludos estoy probando con compilar un cgi conectando a una base de datos usando maria DB

Estoy probando con esto oConn := TMariaDB():New()
oConn:cHost := "localhost"
oConn:cUser := "root"
oConn:cPassword := "12345678"
oConn:cDatabase := "atest"
oConn:nPort := 3306

IF oConn:Open()
cSql := "SELECT fecha, codigom, ingreso, cargo FROM fingresos WHERE cfecha >= '2024-01-01'"
oRs := oConn:Query( cSql )

.
D:/nuevosmysql/proyecto2025/webcgi/CGI/Obj/HelloWorld.o:(.data+0x88): undefined reference to `HB_FUN_XA_BREAK'
D:/nuevosmysql/proyecto2025/webcgi/CGI/Obj/HelloWorld.o:(.data+0xa8): undefined reference to `HB_FUN_TMARIADB'
0 Files, 0 Warnings, 2 Errors
Alguien me podria indicar donde esta el error , si ya cargue todas las librerias correspondientes a mariadb

Agradeceria su ayuda

Re: Usando Mariadb para un cgi

Publicado: Lun Jun 09, 2025 4:55 pm
por ignacio
Hola,

La clase es TMariaDBDatasource(). La librería CGI de Xailer incorporó MARIADB en al versión 9.2.2

La función XA_BREAK() está defninida en la librería CGILib.a


Saludos

Re: Usando Mariadb para un cgi

Publicado: Lun Jun 09, 2025 6:04 pm
por michaelp
Probe con esto oConn := TMariaDBDatasource():New()
oConn:cHost := "localhost"
oConn:cUser := "root"
oConn:cPassword := "12345678"
oConn:cDatabase := "atest"
oConn:nPort := 3306

En una aplicación de escritorio trabaja muy bien 0 problemas

Pero sigo teniendo el error
D:/nuevosmysql/proyecto2025/webcgi/CGI/Obj/HelloWorld.o:(.data+0x98): undefined reference to `HB_FUN_TMARIADBDATASOURCE'

Yo estoy probando tratando de generar un cgi

Que me falta poner si ya cargue todas estas librerías
O si me pueden poner un ejemplo?

<Libraries>
<Library Filename="[xailer]xailer" Link="N" First="Y"/>
<Library Filename="[xailer]xailertcls" Link="N"/>
<Library Filename="[xailer]samples" Link="N"/>
<Library Filename="[xailer]sqlite" Link="N"/>
<Library Filename="[xailer]mariadb"/>
<Library Filename="[xailer]mysql"/>
<Library Filename="[xailer]xailer.res" Link="N"/>
<Library Filename="[xailer]xailermsg.res" Link="N"/>
<Library Filename="[harbour]hbextern"/>
<Library Filename="[harbour]hbdebug"/>
<Library Filename="[harbour]hbvm"/>
<Library Filename="[harbour]hbvmmt"/>
<Library Filename="[harbour]hbrtl"/>
<Library Filename="[harbour]hblang"/>
<Library Filename="[harbour]hbcpage"/>
<Library Filename="[harbour]gtcgi"/>
<Library Filename="[harbour]hbuddall" Link="N"/>
<Library Filename="[harbour]hbrdd"/>
<Library Filename="[harbour]hbusrrdd" Link="N"/>
<Library Filename="[harbour]rddntx"/>
<Library Filename="[harbour]rddcdx"/>
<Library Filename="[harbour]rddnsx"/>
<Library Filename="[harbour]rddfpt"/>
<Library Filename="[harbour]rddads"/>
<Library Filename="[harbour]ace32" Link="N"/>
<Library Filename="[harbour]hbhsx"/>
<Library Filename="[harbour]hbsix"/>
<Library Filename="[harbour]hbmacro"/>
<Library Filename="[harbour]hbcplr"/>
<Library Filename="[harbour]hbpp"/>
<Library Filename="[harbour]hbcommon"/>
<Library Filename="[harbour]hbtip"/>
<Library Filename="[harbour]hbmxml"/>
<Library Filename="[harbour]mxml"/>
<Library Filename="[harbour]hbpcre"/>
<Library Filename="[harbour]hbwin"/>
<Library Filename="[harbour]hbmzip"/>
<Library Filename="[harbour]minizip"/>
<Library Filename="[harbour]hbzlib"/>
<Library Filename="[harbour]hbzebra"/>
<Library Filename="[harbour]xharbour"/>
<Library Filename="[mingw]crt2.o"/>
<Library Filename="[mingw]gcc\i686-w64-mingw32\7.3.0\crtbegin.o"/>
<Library Filename="[mingw]mingw32"/>
<Library Filename="[mingw]gcc\i686-w64-mingw32\7.3.0\gcc"/>
<Library Filename="[mingw]gcc\i686-w64-mingw32\7.3.0\gcc_eh"/>
<Library Filename="[mingw]moldname"/>
<Library Filename="[mingw]mingwex"/>
<Library Filename="[mingw]msvcrt"/>
<Library Filename="[mingw]kernel32"/>
<Library Filename="[mingw]user32"/>
<Library Filename="[mingw]gdi32"/>
<Library Filename="[mingw]advapi32"/>
<Library Filename="[mingw]ws2_32"/>
<Library Filename="[mingw]winspool"/>
<Library Filename="[mingw]comctl32"/>
<Library Filename="[mingw]comdlg32"/>
<Library Filename="[mingw]shell32"/>
<Library Filename="[mingw]uuid"/>
<Library Filename="[mingw]ole32"/>
<Library Filename="[mingw]oleaut32"/>
<Library Filename="[mingw]oledlg"/>
<Library Filename="[mingw]mpr"/>
<Library Filename="[mingw]winmm"/>
<Library Filename="[mingw]mapi32"/>
<Library Filename="[mingw]imm32"/>
<Library Filename="[mingw]msimg32"/>
<Library Filename="[mingw]odbc32"/>
<Library Filename="[mingw]wininet"/>
<Library Filename="[mingw]version"/>
<Library Filename="[mingw]setupapi"/>
<Library Filename="[mingw]iphlpapi"/>
<Library Filename="[mingw]psapi"/>
<Library Filename="[mingw]rpcrt4"/>
<Library Filename="[mingw]winhttp"/>
<Library Filename="[mingw]crypt32"/>
</Libraries>

Re: Usando Mariadb para un cgi

Publicado: Lun Jun 09, 2025 8:49 pm
por ignacio
Hola,

Lo más aconsejable es no utilizar ninguna librería de Xailer. Es decir, no incluir Xailer.lib, ni XailerTCls.lib y simplemente incluir CGILib.a y la librería de MariaDB.

Acabo de modificar el ejemplo de \samples\CGI\HelloWorld incluyendo CGILib y marcando MariaDB y enlaza correctamente.

Saludos
Imagen 131.png
Imagen 131.png (18.77 KiB) Visto 759 veces

Re: Usando Mariadb para un cgi

Publicado: Lun Jun 09, 2025 10:15 pm
por michaelp
Buenas Tardes ,

En mi versión no aparece la librería CGILib Estas son las unicas que tengo
En Xailer 922/lib
07/05/2025 09:43 59,522 libmariadb.a
10/12/2012 12:32 35,142 libmysql.a
03/07/2023 19:59 70,582 libSamples.a
30/05/2025 11:49 1,110,806 libSQLite.a
02/06/2025 11:38 5,701,850 libXailer.a
02/06/2025 11:32 109,904 libXailerDLL.a
02/06/2025 11:37 529,890 libXailerTCls.a

Quizas ese sea el problema
Gracias por tu atencion

Re: Usando Mariadb para un cgi

Publicado: Mar Jun 10, 2025 2:31 am
por michaelp
Descargue el ultimo publicado hasta hoy , y no aparece la librería CGILib

Por favor podrias habilitarla e indicar un link para descargarla?

Saludos

Michael Pavlich

Re: Usando Mariadb para un cgi

Publicado: Mar Jun 10, 2025 10:45 am
por ignacio
Buenos días,

Efectivamente faltan las librerías. Aquí le dejo un enlace a las mismas:

https://xailer.com/files/temp/cgiIlib.zip

Disculpe por el error.

Un saludo

Re: Usando Mariadb para un cgi

Publicado: Mar Jun 10, 2025 10:55 pm
por michaelp
Buenas Tardes ,
Mil Disculpas te antemano seria posible que pusieras un pequeño ejemplo con conexión a una base de datos local con un CGI?
No logro conectarme

Re: Usando Mariadb para un cgi

Publicado: Sab Jun 14, 2025 3:18 am
por michaelp
Disculpe que insista .

#define STDOUT 1
#xtranslate StdOut( <x> ) => FWrite( STDOUT, <x> )

ANNOUNCE HB_GtSys
REQUEST HB_GT_NUL

FUNCTION Main()
LOCAL cForm := GetCGIParam("form")
LOCAL cHtml := "",i,oConn
LOCAL cValor := GetCGIParam("campo")
LOCAL oCon, oRs, cSql, lOk := .F.
LOCAL oDS

//DATA oDS AS CLASS TMariaDBDatasource
StdOut( "Content-Type: text/html" + Chr(13) + Chr(10) + Chr(13) + Chr(10) )
cHtml += "<html><body style='font-family:Arial'>"

oDS := TMariadbDatasource():New()
oDS:cHost := localhost
oDS:cUser := 'root'
oDS:cPassword := '12345678'
oDS:cDatabase := 'calicienta'
oDS:nPort := 3306
oDS:ldisplayerrors:= .t.

IF oDS:Connect()
cHtml += "<p>? Conectado a MariaDB</p>"
ELSE
cHtml += "<p style='color:red;'>? Error al conectar con MariaDB</p>" Siempre tengo el error aqui
ENDIF

oDS:cDatabase := 'calicienta' MyISAM utf8_bin 33.8 KB -

Montado sobre un apache

Servidor: localhost via TCP/IP
Tipo de servidor: MySQL
Conexión del servidor: No se está utilizando SSL Documentación
Versión del servidor: 8.0.17 - MySQL Community Server - GPL
Versión del protocolo: 10
Usuario: root@localhost
Conjunto de caracteres del servidor: UTF-8 Unicode (utf8mb4)

Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.10
Versión del cliente de base de datos: libmysql - mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $
extensión PHP: mysqliDocumentación curlDocumentación mbstringDocumentación
Versión de PHP: 7.3.10

gracias

Re: Usando Mariadb para un cgi

Publicado: Dom Jun 15, 2025 4:18 pm
por ignacio
Hola,

1) Intente hacer un programa de escritorio que funcione sobre la misma máquina
2) Compruebe los mensajes de error de la conexión. Más información en la ayuda.

Saludos

Re: Usando Mariadb para un cgi

Publicado: Mar Jun 17, 2025 2:24 am
por michaelp
Solucionado :

Mi problema era que tenia registrado libmySQL.dll En mi Windows y eso creaba confictos , lo curioso es que en la aplicación de escritorio , funcionaba con algunos errores .
Quite libmySQL.dll del registro de Windows y se arreglo como arte de magia

Lo informo por si a alguien le pasa

Gracias