Discusión sobre el artículo "Trabajo con el SGBD MySQL desde MQL5 (MQL4)" - página 9
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
MT4 build 890 x32 acaba de comprobar. Todo funciona.
Registro de ejecución de scripts de prueba:
Chicos, por favor aclaren:
1. En qué operación da"Violación de acceso leer" ?
2. Cuando se ejecuta el script MySQL-001, ¿qué versión de MQLMySQL se muestra en la pestaña Expertos? Debería ser: MQLMySQL v2.2 x32 Copyright © 2014, Laboratorio FxCodex.
3. ¿Qué versión de base de datos MySQL?
4. ¿Se utiliza MySQL localmente o en un host remoto?
5. Bajo qué sistema operativo se ejecuta el terminal?
Por favor, compruébalo e infórmame, ya que no puedo reproducir el error.
Voy a crear un entorno similar y probar.
Estoy utilizando MT4 (950). Tomé los archivos del archivo adjunto al artículo. ¿He entendido bien que no es la última versión?: MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratorio.
No lee datos del archivo de configuración.
Yo uso MT4 (950). Tomé los archivos del archivo adjunto al artículo. ¿He entendido bien que no es la última versión?: MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratorio
No lee datos del archivo config.
Sí, v2.0 es viejo. Ya he publicado versiones más recientes en la discusión del artículo.
Ahora te la adjunto.
MQLMySQL v2.2 - Fuentes del proyecto DLL para x64 y x86
Prueba algo de esto. Parece ser la última versión.
Según el error que veo en su registro: 0 11:09:37.742 MySQL-002 EURUSD,H1: No se puede crear la tabla `table`.
está utilizando el nombre "tabla" que es la palabra clave de la base de datos mysql y no se puede utilizar como nombre de tabla, intente cambiar por ejemplo a "tabla1" sólo para comprobar si funciona.
Puede ejecutar el comando "USE database_name" justo después de la conexión, donde database_name es el nombre de su base de datos.
por ejemplo si mi base de datos es "mysql":
DB = MySqlConnect(Host, Usuario, Contraseña, Base de datos, Puerto, Socket, ClientFlag);
if (DB ==-1) { Print ("¡Fallo de conexión! Error: "+MySqlErrorDescription); } else { Print ("¡Conectada! DBID#",DB);}
MySqlExecute(DB, "USE mysql");
Bueno, seguí tus sugerencias para el nombre de las tablas y el comando MySqlExecute(DB, "USE mt4") pero sigo recibiendo el mensaje de error:
0 12:51:40.534 Script MySQL-002new EURUSD,M1: cargado con éxito
0 12:51:40.549 MySQL-002new EURUSD,M1: inicializado
0 12:51:40.549 MySQL-002new EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratorio
0 12:51:40.549 MySQL-002new EURUSD,M1: Host: , Usuario: , Base de datos:
0 12:51:40.549 MySQL-002new EURUSD,M1: Conectando...
0 12:51:40.565 MySQL-002new EURUSD,M1: ¡Conectado! DBID#0
0 12:51:40.565 MySQL-002new EURUSD,M1: No se puede crear la tabla `test_table`. Error: Aucune base n'a ?t? s?lectionn?e
0 12:51:40.565 MySQL-002new EURUSD,M1: Desconectado. ¡Script realizado!
0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 0
0 12:51:40.565 Script MySQL-002new EURUSD,M1: eliminado
Hola Eugeniy Lugovoy,
Muchas gracias por su proyecto útil.
Estoy tratando de leer un campo de cadena de una tabla que se trata de 3.000 caracteres, He utilizado "MySqlGetFieldAsString" así:
if (Cursor >= 0)
{
Filas = MySqlCursorFilas(Cursor);
for (int i=0; i<Filas; i++)
if (MySqlCursorFetchRow(Cursor))
{
Get_Setting = MySqlGetFieldAsString(Cursor, 4);
}
.....
Pero el problema es que Get_String me devuelve sólo 1025 caracteres,
Necesito leer ese campo completamente.
¿Pueden ayudarme a resolverlo?
Saludos
Hola Eugeniy Lugovoy,
Muchas gracias por su proyecto útil.
Estoy tratando de leer un campo de cadena de una tabla que se trata de 3.000 caracteres, He utilizado "MySqlGetFieldAsString" así:
if (Cursor >= 0)
{
Filas = MySqlCursorFilas(Cursor);
for (int i=0; i<Filas; i++)
if (MySqlCursorFetchRow(Cursor))
{
Get_Setting = MySqlGetFieldAsString(Cursor, 4);
}
.....
Pero el problema es que Get_String me devuelve sólo 1025 caracteres,
necesito leer ese campo completamente.
¿Pueden ayudarme a resolverlo?
Saludos
Bueno, he seguido sus sugerencias para el nombre de las tablas y el comando MySqlExecute(DB, "USE mt4") pero sigo recibiendo el mensaje de error:
0 12:51:40.534 Script MySQL-002new EURUSD,M1: cargado con éxito
0 12:51:40.549 MySQL-002new EURUSD,M1: inicializado
0 12:51:40.549 MySQL-002new EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratorio
0 12:51:40.549 MySQL-002new EURUSD,M1: Host: , Usuario: , Base de datos:
0 12:51:40.549 MySQL-002new EURUSD,M1: Conectando...
0 12:51:40.565 MySQL-002new EURUSD,M1: ¡Conectado! DBID#0
0 12:51:40.565 MySQL-002new EURUSD,M1: No se puede crear la tabla `test_table`. Error: Aucune base n'a ?t? s?lectionn?e
0 12:51:40.565 MySQL-002new EURUSD,M1: Desconectado. ¡Script realizado!
0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 0
0 12:51:40.565 Script MySQL-002new EURUSD,M1: eliminado
¡Excelente!
Usando MQL5 para generar datos para MQL4.
Todo funcionó de maravilla, excepto que tuve que quitar las comillas simples alrededor tablename en el comando de consulta
Consulta ="SELECT Symbol,Composite,Pattern FROM summarytable";
funciona bien
¡Excelente!
Usando MQL5 para generar datos para MQL4.
Todo funcionó de maravilla, excepto que tuve que quitar las comillas simples alrededor tablename en el comando de consulta
Consulta ="SELECT Symbol,Composite,Pattern FROM summarytable";
funciona bien
Sí, es posible usar sin comillas si no planeas nombrar tablas con mayúsculas/minúsculas (mysql es sensible a mayúsculas/minúsculas) y símbolos especiales. BTW, no es símbolo de comilla simple "'", pero es "`".
Así que su consulta también podría ser: Query ="SELECT `Symbol`,`Composite`,`Pattern` FROM `summarytable`";
si quiere nombrar las columnas Symbol, pero no symbol o SYMBOL
Hola Eugeniy,
Gracias por su módulo, muy útil. ¿Podría ayudar a agregar la función para obtener el nombre de campo? o ¿cómo puedo añadir en VC ++?
¡como estas !
sistema win10 64x, No se puede conectar a la base de datos, ¿me puede ayudar?