In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Usando Mariadb para un cgi

Foro de Xailer profesional en español
Responder
michaelp
Mensajes: 23
Registrado: Vie Feb 14, 2025 8:42 pm

Usando Mariadb para un cgi

Mensaje 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
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Usando Mariadb para un cgi

Mensaje 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
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
michaelp
Mensajes: 23
Registrado: Vie Feb 14, 2025 8:42 pm

Re: Usando Mariadb para un cgi

Mensaje 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>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Usando Mariadb para un cgi

Mensaje 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 749 veces
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
michaelp
Mensajes: 23
Registrado: Vie Feb 14, 2025 8:42 pm

Re: Usando Mariadb para un cgi

Mensaje 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
michaelp
Mensajes: 23
Registrado: Vie Feb 14, 2025 8:42 pm

Re: Usando Mariadb para un cgi

Mensaje 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
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Usando Mariadb para un cgi

Mensaje 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
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
michaelp
Mensajes: 23
Registrado: Vie Feb 14, 2025 8:42 pm

Re: Usando Mariadb para un cgi

Mensaje 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
michaelp
Mensajes: 23
Registrado: Vie Feb 14, 2025 8:42 pm

Re: Usando Mariadb para un cgi

Mensaje 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
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Usando Mariadb para un cgi

Mensaje 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
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
michaelp
Mensajes: 23
Registrado: Vie Feb 14, 2025 8:42 pm

Re: Usando Mariadb para un cgi

Mensaje 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
Responder