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

 

Gracias por este nuevo enfoque. He probado diferentes soluciones pero esta parece la mejor hasta ahora. Hice una adición menor a su biblioteca en la que devuelve el número de campos para una consulta SELECT, utilizando mysql_num_fields, para que yo sepa cuántos campos tengo que procesar y devolver en el lado MQL. ¡¡Muchas gracias de nuevo por poner esto junto, realmente ayudó!!

Código MQL:

int fields = MySqlNumFields(cursor);
for (int j=0; j<fields;j++)
{
    data[j] = MySqlGetFieldAsString(cursor, j);
}
 
sokramm:

Gracias por este nuevo enfoque. He probado diferentes soluciones pero esta parece la mejor hasta ahora. Hice una adición menor a su biblioteca en la que devuelve el número de campos para una consulta SELECT, utilizando mysql_num_fields, para que yo sepa cuántos campos tengo que procesar y devolver en el lado MQL. ¡¡¡Muchas gracias de nuevo por poner esto junto, realmente ayudó!!!

Gracias por las amables palabras. Es una solución básica y mantiene la funcionalidad general que estoy usando en realidad.

He utilizado las siguientes reglas durante el desarrollo de esta solución: robustez, fácil de estudiar, simple de usar y un mínimo de apoyo.

Por supuesto, usted puede cambiar este proyecto y añadir cualquier función adicional con respecto a las necesidades de su proyecto.

Mucha suerte,

Eugene

 

Hola amigos,

Bueno, si te gusta esta solución y probarlo para proyectos reales (no sólo por diversión) Tengo una actualización.

Estoy empezando a escribir un nuevo artículo sobre el trabajo con diferentes bases de datos, como MS SQL Server, MS Access, Oracle, IBM DB/2, PostgreSQL.

La decisión sería robusto y fácil de usar como este, pero no tengo tiempo para completarlo.

Por lo tanto, si usted quiere apoyar este proyecto puede enviar unos $$ sobre paypal para mí: e.a.lugovoy@gmail.com

La cantidad de suma no importa, sólo me gustaría saber es tal decisión realmente necesita ser completado.

Gracias a todos,

Eugene

 

hola,EugeniyLugovoy~


Quiero saber porque ' MySqlGetFieldAsDouble(Cursor, 3);' no puede escribir su valor en data[i]?


Print("datos[i]",datos[3]);--siempre displa 0.0. que pasa ? gracias señor!



for (i=0; i<Filas; i++)
if (MySqlCursorFetchRow(Cursor))

{

double datos[] ;

ArrayResize(datos,Filas);

datos[i]= MySqlGetFieldAsDouble(Cursor, 3);

Print("datos[i]",datos[3]);
}

Person - schema.org
  • schema.org
PropertyExpected TypeDescription Properties from Person The Global Location Number (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization, person, or place. The GLN is a 13-digit number used to identify parties and physical locations. A count of a specific user interactions...
 
elugovoy:

Hola amigos,

Bueno, si te gusta esta solución y probarlo para proyectos reales (no sólo por diversión) Tengo una actualización.

Estoy empezando a escribir un nuevo artículo sobre el trabajo con diferentes bases de datos, como MS SQL Server, MS Access, Oracle, IBM DB/2, PostgreSQL.

La decisión sería robusto y fácil de usar como este, pero no tengo tiempo para completarlo.

Por lo tanto, si usted quiere apoyar este proyecto puede enviar unos $$ sobre paypal para mí: e.a.lugovoy@gmail.com

La cantidad de suma no importa, sólo me gustaría saber es tal decisión realmente necesita ser completado.

Gracias a todos,

Eugene

a veces, array es necesario - por ejemplo, tenemos que coincidir con los datos a una fecha específica(de la garrapata) - puede estar relacionado con el algoritmo que es conveniente hacerlo en array que MYSQL。me puede dar una ayuda señor?muchas gracias~!
 
illman:

hola,EugeniyLugovoy~

Quiero saber porque ' MySqlGetFieldAsDouble(Cursor, 3);' no puede escribir su valor en data[i]?

Print("datos[i]",datos[3]);--siempre displa 0.0. que pasa ? gracias señor!

for (i=0; i<Filas; i++)

if (MySqlCursorFetchRow(Cursor))

{

double datos[] ;

ArrayResize(datos,Filas);

datos[i]= MySqlGetFieldAsDouble(Cursor, 3);

Print("datos[i]",datos[3]);
}

Estás intentando definir array cada vez en ciclo e imprimir elemento de array vacío.

Prueba esto:

// Supongo que el Rows obtiene el número de filas ya antes de esta solución.
double data[];
ArrayResize(data, Rows);  

for (i=0; i<Rows; i++)
    {
     if (MySqlCursorFetchRow(Cursor))
        {
          data[i]= MySqlGetFieldAsDouble(Cursor, 3);
        }
    }

// aquí obtendrás el array relleno "data"
Print("data[",3,"]",data[3]);

Por lo tanto, usted tiene que definir la matriz una vez antes de recuperar el ciclo, a continuación, cambiar el tamaño, y luego escribir la rutina para obtener datos.

Por cierto, el número 3 en MySqlGetFieldAsDouble(Cursor, 3); significa 4ª columna en la lista SELECT, porque la numeración empieza por 0, es decir SELECT Open, High, Low, Close FROM ... significa 0 - Open, 1 - High, 2 - Low y 3 - Close.

Espero que esto le ayude.

Saludos,

Eugene

 
elugovoy:

Usted está tratando de definir la matriz cada vez en el ciclo e imprimir elemento de matriz vacía.

Prueba esto:

Entonces, tienes que definir el array una vez antes de obtener el ciclo, luego redimensionarlo, y luego escribir la rutina para obtener los datos.

Por cierto, el número 3 en MySqlGetFieldAsDouble(Cursor, 3); significa 4ª columna en la lista SELECT, porque la numeración empieza por 0, es decir SELECT Open, High, Low, Close FROM ... significa 0 - Open, 1 - High, 2 - Low y 3 - Close.

Espero que esto le ayude.

Saludos,

Eugene

Gracias para ayudar señor ,He resuelto mis problemas acerca de la matriz。Usted hizo un buen trabajo en mysql-mql de hecho~!

 
Para MetaTrader5 x64 utilice la siguiente librería (adjunta en la discusión):
Archivos adjuntos:
[Eliminado]  

Hola elugovoy

Impresionante artículo y grandes bibliotecas.

Estoy tratando de utilizar sus ejemplos bajo 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ías ayudarme?

Muchas Gracias

Carmine Marrone.

 
carmine.marrone:

Hola elugovoy

Impresionante artículo y grandes bibliotecas.

Estoy tratando de utilizar sus ejemplos bajo 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ías ayudarme?

Muchas Gracias

Carmine Marrone.

Hola Carmine

Lo anterior en discusión he adjuntado proyecto para x64, echa un vistazo y / o descarga de este post.

Espero que esto ayude.

Saludos,

Eugene

Archivos adjuntos: