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

 

Hola señor ,mi MT4 muestra :¡Conexión fallida! Error: Maximum connections exceeded.--cómo puedo lidiar con este problema? Supongo que las conexiones máximas son 32,cómo puedo aumentar las conexiones a tales como 64 ?.

Gracias por ayudar, señor.

 
illman:

Hola señor ,mi MT4 muestra :¡Conexión fallida! Error: Maximum connections exceeded.--cómo puedo lidiar con este problema? Supongo que las conexiones máximas son 32,cómo puedo aumentar las conexiones a tales como 64 ?.

gracias por ayudar,sir.

Hola,

Sí, el número máximo de conexiones es de 32

¿Está tratando de usar su programa MQL basado en MQLMySQL.dll en más de 32 gráficos simultáneamente?

¿O simplemente se olvidó de cerrar la conexión en su programa?

Para cambiar la conexión máxima de 32 a otra tiene que reconstruir MQLMySQL.DLL. Las fuentes se adjuntan al artículo, usted tiene que:

1. 1. Descomprimir los fuentes de "MQLMySQL DLL Project MSVS-2010.zip".

2. Cargar el proyecto en MS Visual Studio 2010 o superior

3. Abrir el archivo "MQLMySQL.h"

4. Busque la cadena

// definición de la base de datos
#define  MAX_CONNECTIONS 32

y sustituye el valor 32 por 64 o lo que quieras

// definición de la base de datos
#define  MAX_CONNECTIONS 64

5. Reconstruir el proyecto

6. Reemplace una DLL vieja en su carpeta de datos de Metatrader con la nueva compilada.

Saludos,

Eugene

 

elugovoy:

Usted explicó muy clearly.Because,I utilizar una gran cantidad de datos extraños para mi índice ,así que las conexiones se vuelven muy grandes ,una vez más de 32 ,MT4 señalará "error" y no mostrar nada en las ventanas de índice.

Gracias por su amable ayuda y su esfuerzo de desarrollo de estos all!.


Hola,

Sí, el número máximo de conexiones es de 32

¿Está tratando de utilizar su programa MQL basado en MQLMySQL.dll en más de 32 gráficos simultáneamente?

O simplemente se olvidó de cerrar la conexión en su programa?

Para cambiar la conexión máxima de 32 a otra tiene que reconstruir MQLMySQL.DLL. Las fuentes se adjuntan al artículo, usted tiene que:

1. 1. Descomprimir los fuentes de "MQLMySQL DLL Project MSVS-2010.zip".

2. Cargar el proyecto en MS Visual Studio 2010 o superior

3. Abrir el archivo "MQLMySQL.h"

4. Busque la cadena

y sustituye el valor 32 por 64 o lo que quieras

5. Reconstruir el proyecto

6. Reemplace una DLL vieja en su carpeta de datos de Metatrader con la nueva compilada.

Saludos,

Eugene

 

En primer lugar, gracias por la librería, es de lejos la mejor solución que hay y la más documentada.

Me preguntaba si hay alguna forma de obtener las filas afectadas después de una sentencia update, para poder ejecutar un insert si los registros actualizados son 0 (el update tiene éxito, solo que no actualiza ningún registro debido a las condiciones del filtro "where").

No quiero usar un "insert on duplicate key update" porque el 99,9% de las veces la sentencia update actualizará efectivamente 1 registro (ya existe), y por lo tanto no hay necesidad de ejecutar el insert. Supongo que hay un impacto en el rendimiento tratando de insertar siempre sin necesidad.

Gracias de antemano.

 
jmhoms:

En primer lugar, gracias por la librería, es de lejos la mejor solución que hay y la más documentada.

Me preguntaba si hay alguna forma de obtener las filas afectadas después de una sentencia update, para poder ejecutar un insert si los registros actualizados son 0 (el update tiene éxito, solo que no actualiza ningún registro debido a las condiciones del filtro "where").

No quiero usar un "insert on duplicate key update" porque el 99,9% de las veces la sentencia update actualizará efectivamente 1 registro (ya existe), y por lo tanto no hay necesidad de ejecutar el insert. Supongo que hay un impacto en el rendimiento tratando de insertar siempre sin necesidad.

Gracias de antemano.

Hola querido amigo,

Si tienes MSVC 2010 puedes descargar los fuentes de MQLMySQL.DLL y añadir la función que necesitas; la API C++ de MySQL tiene dicha función (http://dev.mysql.com/doc/refman/5.0/en/mysql-affected-rows.html)

O puedo hacerlo por ti, pero ahora mismo no tengo tiempo para esto, puedo hacerlo el fin de semana (7-8 de marzo de 2015), ¿te parece bien?

Saludos,

Eugene

 
elugovoy:

Hola querido amigo,

Si usted tiene MSVC 2010 puede descargar las fuentes de MQLMySQL.DLL y añadir la función que necesita, la API de MySQL C ++ tiene esa función(http://dev.mysql.com/doc/refman/5.0/en/mysql-affected-rows.html)

O puedo hacerlo por ti, pero ahora mismo no tengo tiempo para esto, puedo hacerlo el fin de semana (7-8 de marzo de 2015), ¿te parece bien?

Saludos,

Eugene

¡¡¡Por supuesto que me funciona !!!

Muchas gracias.

Josep M.

 

Hola Eugeniy,

¿has tenido la oportunidad de echar un vistazo a la función "filas afectadas"?

Un saludo,

Josep M.

 
jmhoms:

Hola Eugeniy,

¿has tenido la oportunidad de echar un vistazo a la función "filas afectadas"?

Un saludo,

Josep M.

Hola Josep,

Te he contestado por mensaje privado.

De todas formas pongo aquí la v2.2. Probada en MT4. Si tienes problemas con MT5 (x32/x64) házmelo saber.

¡Feliz trabajo!

Archivos adjuntos:
MQL4_x32.zip  1073 kb
MQL5_x32.zip  1073 kb
MQL5_x64.zip  1076 kb
MQLMySQL_v2_2.zip  5072 kb
 
elugovoy:
Para plataformas x64, utilice la siguiente biblioteca (con discusión)
Violación de acceso leído a 0x72656472
 

Hola, ¿qué versión de MT5 terminal que está utilizando?

¿Qué versión de MT5 terminal que está utilizando?

Por favor, pruebe la última actualización de las bibliotecas MQLMySQL, que se adjunta aquí.

Archivos adjuntos:
MQL4_x32.zip  1073 kb
MQL5_x32.zip  1073 kb
MQL5_x64.zip  1076 kb
MQLMySQL_v2_2.zip  5072 kb