Discusión sobre el artículo "Trabajo con el SGBD MySQL desde MQL5 (MQL4)" - página 26

 
Ana Fonseca:
¿En qué carpeta debo guardar la DLL?
Aquí está el paquete completo de actualización DLL: https://github.com/elugovoy/MQLMySQL-Project
incluye dlls compilados ubicados en la estructura de carpetas de metatrader
 

Hola Eugeniy

¿puedes proporcionar una versión de 64 de MQLMySQL.dll. Cuando se carga, mt pide

'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' is not 64-bit version
Cannot load 'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' [193]
 
Xiaowei Yan:

Hola Eugeniy,

¿puedes proporcionar una versión de 64 de MQLMySQL.dll. Cuando se carga, mt pide

Claro, puedes descargar los DLLs x64 compilados desde GitHub: https: //github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release

Repositorio completo del proyecto: https: //github.com/elugovoy/MQLMySQL-Project

Saludos,

Eugene

elugovoy/MQLMySQL-Project
elugovoy/MQLMySQL-Project
  • elugovoy
  • github.com
MQL & DLL libraries for working with MySQL database - elugovoy/MQLMySQL-Project
 

Hola Eugeniy,

Me preguntaba si hay una manera de cambiar el código de la lectura de la configuración del archivo

// lectura de las credenciales de la base de datos desde el archivo INI
 Host = ReadIni(INI, "MYSQL", "Host");
 User = ReadIni(INI, "MYSQL", "User");
 Password = ReadIni(INI, "MYSQL", "Password");
 Database = ReadIni(INI, "MYSQL", "Database");
 Port     = (int)StringToInteger(ReadIni(INI, "MYSQL", "Port"));
 Socket   = ReadIni(INI, "MYSQL", "Socket");
 ClientFlag = CLIENT_MULTI_STATEMENTS; 

y utilizar esta asignación en su lugar

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306
Socket   = 0
ClientFlag = CLIENT_MULTI_STATEMENTS; 

es posible, ya que estoy recibiendo el mensaje de error como violación de acceso leer 0x00000000 MQLMySQL.dll

¿Alguna solución posible?

 
heere:

Hola Eugeniy,

Me preguntaba si hay una manera de cambiar el código de la lectura de la configuración del archivo

y utilizar esta asignación en su lugar

es posible, ya que estoy recibiendo un mensaje de error como violación de acceso leer 0x00000000 MQLMySQL.dll

¿Alguna solución posible?

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306;
Socket   = "0"; // esta variable debe ser string, pero no int
ClientFlag = CLIENT_MULTI_STATEMENTS; 

tal vez esta ayuda

 
MARCOS DALCIN ALVES DINIZ:

Funcionó después de actualizar la versión de OpenSSL. Gracias por escucharme.

Hola~

También tuve la pregunta de error de [126]:


No se puede cargar 'C:\Users\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126]

No se puede llamar a'cMySqlVersion','MQLMySQL.dll' no está cargado

llamada a función de importación no resuelta


MARCOSmencionó que es normal después de actualizar la versión de OpenSSL

¿Cómo puedo actualizar la versión de OpenSSL?

Gracias ~



PS.

Porque no estoy familiarizado con este campo

Quiero preguntar de nuevo

Veo que hay tres archivos dll en su carpeta de bibliotecas

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


He instalado el software MySQL

¿Estos archivos dll se han copiado de la ruta bajo ..\Archivos de Programa\MySQL?

En caso afirmativo, ¿de qué carpeta se copiaron?


 
zboo:

Hola.

Yo también tenía la pregunta de error de [126]:


No se puede cargar 'C:\Users\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126]

No se puede llamar a'cMySqlVersion','MQLMySQL.dll' no está cargado

llamada a función de importación no resuelta


MARCOSmencionó que es normal después de actualizar la versión de OpenSSL

¿Cómo puedo actualizar la versión de OpenSSL?

Gracias ~



PS.

Porque no estoy familiarizado con este campo

Quiero preguntar de nuevo

Veo que hay tres archivos dll en la carpeta Libraries

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


He instalado el software MySQL

¿Estos archivos dll se copian de la ruta bajo ..\Archivos de Programa\MySQL?

Si es así, ¿de qué carpeta se copiaron?


¿Puede alguien ayudarme a resolver la misma situación?

Gracias~~~~

 
Eugeniy Lugovoy:

tal vez esto ayude

Muchas gracias. Solucionó el problema.

 

@Eugeniy Lugovoy

Buenas tardes, Eugeniy. Muchas gracias por el artículo. ¿Podrías por favor aconsejarme? Me he encontrado con el siguiente problema: la dll funciona bien si ejecuto el EA no en el tester. En el tester da el siguiente error: "Cannot load 'C:\Users\...\MQL5\Libraries\MQLMySQL.dll' [126]". Esto hace que sea imposible probar el EA en los datos históricos.

Contexto del problema: Yo uso la base de datos para cargar los parámetros de entrada para el comercio. También guardo la información necesaria después de operar. El error es sólo en el probador.


Lo que he intentado hacer:

- añadir #property tester_library "MQLMySQL.dll"

- escribir la ruta a la dll por separado en su totalidad

- comprobado dos veces si el archivo que no se carga está en la carpeta.

Nada ayuda, el archivo está en la carpeta, pero no puedo cargarlo. Por favor, dime dónde más puedo investigar.

 

Por favor, ¿alguien puede confirmar si estoy usando la cadena de conexión correcta?

Estoy usando "127.0.0.1" para el host

Estoy usando el usuario , pass , y base de datos entre comillas ( 3 parámetros separados )

Estoy poniendo NULL para el socket y 0 para la bandera del cliente.

( Mi sistema es Win 10 )


Me sale un error diciendo que no hay conexión a la base de datos cuando intento ejecutar una inserción