Page 2 of 3

Re: Compilar Harbour modo Consola 64bits

PostPosted: Fri May 31, 2024 4:36 pm
by Enrico Maria Giordano
Try to add MariaDB lib as per Antonio's advice.

Re: Compilar Harbour modo Consola 64bits

PostPosted: Fri May 31, 2024 5:40 pm
by jrestojeda
Buenas tardes,
Vi eso que me recomendó Antonio, pero no tengo esa lib, en el directorio de Harbour que bajé no está.
Muchas gracias por la respuesta.

Re: Compilar Harbour modo Consola 64bits

PostPosted: Fri May 31, 2024 6:22 pm
by Antonio Linares

Re: Compilar Harbour modo Consola 64bits

PostPosted: Fri May 31, 2024 6:48 pm
by jrestojeda
Antonio,
Enlazando esa lib que me pasó, pasa lo mismo mencionado antes.

Code: Select all  Expand view
C:\DEMO>c1

C:\DEMO>call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.7.0
** Copyright (c) 2020 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
hbmk2[DEMO64]: Warning: Non-portable parameter: 'LIB\hbmysql.lib' in
               DEMO64.HBP:4. Use '-LLIB -lhbmysql' option(s) instead.
hbmk2[DEMO64]: Warning: Non-portable parameter: 'LIB\libmariadb64.lib' in
               DEMO64.HBP:5. Use '-LLIB -llibmariadb64' option(s) instead.
Harbour 3.2.0dev (r2405130039)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'DEMO64.PRG'...
Lines 599, Functions/Procedures 1
Generating C source output to 'C:\Users\Esteban\AppData\Local\Temp\hbmk_sh31xk.dir\DEMO64.c'... Done.
Compiling 'MYSQL.prg'...
Lines 43, Functions/Procedures 2
Generating C source output to 'C:\Users\Esteban\AppData\Local\Temp\hbmk_sh31xk.dir\MYSQL.c'... Done.
DEMO64.c
MYSQL.c
Generando código...
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_num_rows sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_LIST_DBS
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_num_fields sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_FETCH_ROW
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_affected_rows sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_AFFECTED_ROWS
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_errno sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_ERRNO
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_error sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_ERROR
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_init sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_REAL_CONNECT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_real_connect sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_REAL_CONNECT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_select_db sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_SELECT_DB
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_store_result sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_STORE_RESULT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_use_result sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_USE_RESULT
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_get_server_version sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_GET_SERVER_VERSION
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_free_result sin resolver al que se hace referencia en la funci¢n MYSQL_RES_release
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_fetch_row sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_FETCH_ROW
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_fetch_lengths sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_FETCH_ROW
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_real_escape_string sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_REAL_ESCAPE_STRING
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_close sin resolver al que se hace referencia en la funci¢n MYSQL_release
DEMO64.exe : fatal error LNK1120: 16 externos sin resolver
hbmk2[DEMO64]: Error: Running linker. 1120
link.exe @C:\Users\Esteban\AppData\Local\Temp\gdkskx.lnk

hbmk2: Hint: Add option 'hbmysql.hbc' for missing function(s):
       mysql_real_escape_string(), mysql_get_server_version(),
       mysql_use_result(), mysql_store_result(), mysql_select_db(),
       mysql_real_connect(), mysql_error(), mysql_errno(),
       mysql_affected_rows(), mysql_fetch_row(), mysql_list_dbs()
Presione una tecla para continuar . . .
C:\DEMO>


Me siguen faltando cosas.

Re: Compilar Harbour modo Consola 64bits

PostPosted: Fri May 31, 2024 7:05 pm
by Enrico Maria Giordano
You have to try with a simple batch, no other way to me.

Re: Compilar Harbour modo Consola 64bits

PostPosted: Sat Jun 01, 2024 6:53 am
by Antonio Linares
Eduardo,

Puedes copiar aqui el PRG que deseas construir ? gracias

Re: Compilar Harbour modo Consola 64bits

PostPosted: Sun Jun 02, 2024 12:07 am
by jrestojeda
Antonio,
Son dos PRGs

El primero es DEMO64.prg

Code: Select all  Expand view
#include "inkey.ch"
#include "hbgtinfo.ch"

REQUEST HB_LANG_ES
REQUEST DBFCDX, DBFFPT

// INICIO DEL PROGRAMA //
Function main()

setmode(25,80)

ALERT("Hola mundo 64 Bits")

DemoMySql()

Return nil


El segundo PRG es MYSQL.prg

Code: Select all  Expand view
#include "MySql.CH"

// PROBANDO MYQL //
Function DemoMySql()

cHostName  := "localhost"
cHostPort  := "3306"
cUser      := "root"
cPass      := ""
cDataBase  := "Test"

IF Conexion( cHostName, cUser, cPass )

   cQuery:="SELECT CODIGO,DESCRIPCION FROM "+cDatabase+".empresas"
   oQuery:=oServer:Query(cQuery)

   FOR Q=1 TO oQuery:LASTREC()
      oRow:=oQuery:GETROW(Q)

      ALERT( "EMPRESA: "+oRow:FIELDGET(1)+" - RAZON SOCIAL: "+oRow:FIELDGET(2) )

   NEXT

ENDIF

Return nil
//


// CONECTO AL MYSQL //
Function Conexion( cHostName, cUser, cPassWord )

oServer:=TMySQLServer():New(cHostName, cUser, cPassWord )
IF oServer:NetErr()
   ALERT("Error de Conexión con Servidor " + CHR(13) + oServer:Error() )
   oServer:=Nil
   Return .f.
ELSE
   ALERT("Bienvenido a MySql - Harbour Consola 64 Bits")
ENDIF

Return .T.
//


Entiendo que este ejemplo se pude hacer todo en el mismo PRG, pero lo hago de esa manera y con varias funciones para ver como puedo tener más de un PRG en el mismo proyecto con varias funciones.

Muchas gracias Antonio y Enrico por vuestra predisposición.
Saludos,

Re: Compilar Harbour modo Consola 64bits

PostPosted: Sun Jun 02, 2024 6:50 am
by Enrico Maria Giordano
Please set harbour warnings to the highest level (-w3). That way, you will find some errors in your code (oServer is not declared nor assigned in DemoMySql() function).

Re: Compilar Harbour modo Consola 64bits

PostPosted: Sun Jun 02, 2024 8:02 am
by Antonio Linares
Estimado Esteban,

Buscando el primer símbolo que no te encuentra:
hbmysql.lib(mysql.obj) : error LNK2019: s¡mbolo externo server_mysql_num_rows sin resolver al que se hace referencia en la funci¢n HB_FUN_MYSQL_LIST_DBS

server_mysql_num_rows no aparece en ningún fichero de los que hay en https://github.com/harbour/core/tree/master/contrib/hbmysql

Y esto no entiendo como puede suceder.

Estas usando lo más reciente que hay en https://github.com/harbour/core/tree/master/contrib/hbmysql ?

Re: Compilar Harbour modo Consola 64bits

PostPosted: Sun Jun 02, 2024 8:20 am
by Enrico Maria Giordano
I confirm, that symbol does not exist anywhere I could search. You have to double check the libs you are linking.

Re: Compilar Harbour modo Consola 64bits

PostPosted: Sun Jun 02, 2024 11:43 pm
by jrestojeda
Sisi, lo entiendo, pero estoy vinculando todo lo último que me pasaron en este mismo post.
Muy raro realmente...

Re: Compilar Harbour modo Consola 64bits

PostPosted: Mon Jun 10, 2024 4:03 pm
by jrestojeda
Hola a todos.
No se generó otra lib para probar no?
Me sería de gran avance poder hacer funcionar MySql con Harbour 64 bits.
Cualquier otra sugerencia se agradece.
Saludos,

Re: Compilar Harbour modo Consola 64bits

PostPosted: Mon Jun 10, 2024 5:52 pm
by Enrico Maria Giordano
You are linking a wrong or older and unsupported library somehow. Double check the library list and show it here, please.

Re: Compilar Harbour modo Consola 64bits

PostPosted: Thu Jun 13, 2024 2:34 pm
by jrestojeda
Hola Erico,
Tal como expliqué antes, estoy usando todo lo que me pasó Antonio en este mismo post, yo lo único que puse de mi parte es el código.
El Harbour 64 que estoy usando y las libs fueron proporcionadas en este mismo post.
Tal vez me pasaron versiones incompatibles, o bien yo no estoy entendiendo algunos conceptos.
Saludos,

Re: Compilar Harbour modo Consola 64bits

PostPosted: Thu Jun 13, 2024 2:55 pm
by Antonio Linares
Esteban,

En harbour\contrib\hbmysql\tests tienes test.prg
https://github.com/harbour/core/tree/master/contrib/hbmysql/tests

prueba a construir ese ejemplo