Dmitri Custurov: ¿ Qué pasa con el soporte de caching_sha2_password ? ¿ Hay alguna forma de solucionarlo o simplemente instalar mysql_native_password ?
Hy hasta ahora nativo sólo se admite. ¿alguien realmente necesita soporte sha2 en esta solución?
¿Así que su servidor de base de datos no se encuentra localmente o incluso bajo vpn?
Hola @EugeniyLugovoy y ¡gracias por tu duro trabajo!
En la versión actual de tu implementación, ¿hay alguna forma de recuperar el "LAST_INSERT_ID" después de una operación INSERT (en una tabla con una columna AUTO_INCREMENT)?
Hola @EugeniyLugovoy y ¡gracias por tu duro trabajo!
En la versión actual de tu implementación, ¿hay alguna forma de recuperar el "LAST_INSERT_ID" después de una operación INSERT (en una tabla con una columna AUTO_INCREMENT)?
Gracias de antemano y que tengas un buen día :)
Hola arsenico42, puedes intentar hacer la inserción en una consulta y luego seleccionar LAST_INSERT_ID en otra, pero no puedo recomendar esta forma, pero no puedo recomendar esta forma porque LAST_INSERT_ID es una función que devuelve una variable global de la base de datos, y otra inserción (de otro usuario, ejecutándose concurrentemente) entre tu inserción original y la selección de LAST_INSERT_ID puede afectar el valor de LAST_INSERT_ID.
Esto no depende de la librería, es como funciona mysql/mariadb.
Pero, puedo aconsejarle para crear una función en el lado de base de datos para insertar los valores requeridos, seleccione LAST_INSERT_ID y devolver este ID como valor de la función. podría parecer:
CREATE FUNCTION `import_funds_add`(
`p_file_name` varchar(64),
`p_full_path` varchar(2000),
`p_status` VARCHAR(10),
`p_error` VARCHAR(2000)
)
RETURNS bigint(20)
LANGUAGE SQL
NOT DETERMINISTIC
MODIFIES SQL DATA
BEGIN
declare id bigint;
INSERT INTO import_funds(`file_name`, `full_path`, `status`, `error`, `creation_date`)
VALUES (p_file_name, p_full_path, p_status, p_error, now());
SELECT LAST_INSERT_ID() INTO id;
RETURN(id);
END;;
Y en MQL tienes que abrir el cursor para la consulta:
qry="SELECT import_funds_add('bonuses.csv','c:\\broker imports\\XXX-FX','NEW','No errors') as last_id";
a continuación, obtener el valor como de cursor habitual y cerrar el cursor.
Así, en lugar de utilizar los comandos por separado en MQL sólo puede combinarlos en el lado DB en la función.
Estoy tratando de utilizar sus ejemplos en MT5 pero estoy recibiendo este error:
2014.12.15 15:44:16.387 MySQL-001'C:\Users\....\AppData\Roaming\MetaQuotes\TerminalD0E8209F77C8CF37AD8BF550E51FF075\MQL5\libraries\MQLMySQL.dll' no es la versión de 64 bits
¿Está ejecutando MT5 en un entorno de 32 bits?
¿Podría ayudarme?
¡Muchas Gracias!
Carmine Marrone.
Hola Carmine, puede descargar la versión x64 de las fuentes en github.
"No se puede llamar a 'ReadIni', '..\libraries\MQLMySQL.dll' no está cargado"
Asegúrese de que tiene los archivos MQLMySQL.dll & MQLMySQL.def ubicados en su carpeta "C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\".
Como puede ver si está ejecutando programas MQL en modo Tester, la ruta a las librerías sería diferente (debido a UAC)
Error de múltiples sentencias: Usted tiene un error en su sintaxis SQL; consulte el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta a utilizar cerca de ...
Error de múltiples sentencias: Usted tiene un error en su sintaxis SQL; consulte el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta a utilizar cerca de ...
Asegúrese de que ha establecido la bandera de cliente de múltiples declaraciones en la apertura de la conexión de base de datos.
int ClientFlag = CLIENT_MULTI_STATEMENTS; // Establecer la bandera multi-statementsint DB;
DB = MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag); // Conexión a la base de datos
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
¿ Qué pasa con el soporte de caching_sha2_password ? ¿ Hay alguna forma de solucionarlo o simplemente instalar mysql_native_password ?
Hy hasta ahora nativo sólo se admite. ¿alguien realmente necesita soporte sha2 en esta solución?
¿Así que su servidor de base de datos no se encuentra localmente o incluso bajo vpn?
Hola @EugeniyLugovoy y ¡gracias por tu duro trabajo!
En la versión actual de tu implementación, ¿hay alguna forma de recuperar el "LAST_INSERT_ID" después de una operación INSERT (en una tabla con una columna AUTO_INCREMENT)?
Gracias de antemano y que tenga un buen día :)Hola @EugeniyLugovoy y ¡gracias por tu duro trabajo!
En la versión actual de tu implementación, ¿hay alguna forma de recuperar el "LAST_INSERT_ID" después de una operación INSERT (en una tabla con una columna AUTO_INCREMENT)?
Gracias de antemano y que tengas un buen día :)Hola arsenico42, puedes intentar hacer la inserción en una consulta y luego seleccionar LAST_INSERT_ID en otra, pero no puedo recomendar esta forma, pero no puedo recomendar esta forma porque LAST_INSERT_ID es una función que devuelve una variable global de la base de datos, y otra inserción (de otro usuario, ejecutándose concurrentemente) entre tu inserción original y la selección de LAST_INSERT_ID puede afectar el valor de LAST_INSERT_ID.
Esto no depende de la librería, es como funciona mysql/mariadb.
Pero, puedo aconsejarle para crear una función en el lado de base de datos para insertar los valores requeridos, seleccione LAST_INSERT_ID y devolver este ID como valor de la función. podría parecer:
Y en MQL tienes que abrir el cursor para la consulta:
qry="SELECT import_funds_add('bonuses.csv','c:\\broker imports\\XXX-FX','NEW','No errors') as last_id";a continuación, obtener el valor como de cursor habitual y cerrar el cursor.
Así, en lugar de utilizar los comandos por separado en MQL sólo puede combinarlos en el lado DB en la función.
es solo un ejemplo de un sistema en vivo.
Hola elugovoy
Impresionante artículo y estupendas bibliotecas.
Estoy tratando de utilizar sus ejemplos en MT5 pero estoy recibiendo este error:
2014.12.15 15:44:16.387 MySQL-001 'C:\Users\....\AppData\Roaming\MetaQuotes\TerminalD0E8209F77C8CF37AD8BF550E51FF075\MQL5\libraries\MQLMySQL.dll' no es la versión de 64 bits
¿Está ejecutando MT5 en un entorno de 32 bits?
¿Podría ayudarme?
¡Muchas Gracias!
Carmine Marrone.
Hola Carmine, puede descargar la versión x64 de las fuentes en github.
https://github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release
Hola @Eugeniy Lugovoy, en primer lugar gracias por toda la contribución a la comunidad
Estoy stucked aquí:
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
Hey @Eugeniy Lugovoy, en primer lugar gracias por toda la contribución a la comunidad
Estoy stucked aquí:
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
Asegúrese de que tiene los archivos MQLMySQL.dll & MQLMySQL.def ubicados en su carpeta "C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\".
Como puede ver si está ejecutando programas MQL en modo Tester, la ruta a las librerías sería diferente (debido a UAC)
multi-insert obtiene error.
Error de múltiples sentencias: Usted tiene un error en su sintaxis SQL; consulte el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta a utilizar cerca de ...
multi-insert obtiene error.
Error de múltiples sentencias: Usted tiene un error en su sintaxis SQL; consulte el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta a utilizar cerca de ...
Asegúrese de que ha establecido la bandera de cliente de múltiples declaraciones en la apertura de la conexión de base de datos.