Cómo acceder a la base de datos desde MQL4 , ORACL , MSSQL, MySQL - página 6

 

¡todo está funcionando y la base se está esponjando! :)

Buena suerte.

 
TheVilkas писал(а) >>

¡todo está funcionando y la base se está esponjando! :)

Buena suerte.

¡¡¡Anotación!!!

Un ejemplo de trabajo real.

Gracias

 

¡HOORAY! Mi base también funcionó bien a través de libmysql.dll. No entiendo por qué el resultado se devuelve con jeroglíficos al principio y luego la información correcta. Se ha modificado el código anterior.

Solicitud: "SELECT concat(';',concat_ws(';',date,title,impact)) FROM calendario WHERE (fecha entre ADDDATE( NOW( ), INTERVAL -4 DAY ) AND ADDDATE( NOW( ), INTERVAL +2 DAY ) AND (currency='"+symb1+"' XOR currency='"+symb2+"') ORDER BY date"

Código:

 for (int i=0; i< numOfRows; i++) { 
      row = mysql_fetch_row( result); 
      //add_news(row); 
   
   int begin = StringFind( row, DELIM)+1; 
   int end = StringFind( row, DELIM, begin);   
      ArrayResize( News_Array, i+1);
      News_Array[ i,0] = StringSubstr( row, begin, end- begin);  // fills datetime data in compatible format
         begin = end+1; 
         end = StringFind( row, DELIM, begin); 
      News_Array[ i,1] = StringSubstr( row, begin, end- begin);   // fills description data
         begin = end+1; 
         end = StringFind( row, DELIM, begin);       
      News_Array[ i,2] = StringSubstr( row, begin, end- begin);  // fills rating data
      if (StringSubstr( row, begin, end- begin) == "High") Event_Rating_No = "3";
      if (StringSubstr( row, begin, end- begin) == "Medium") Event_Rating_No = "2";
      if (StringSubstr( row, begin, end- begin) == "Low") Event_Rating_No = "1";   
      
         begin = end+1; 
         end = StringFind( row, DELIM, begin);      
      
      News_Array[ i,3] = Event_Rating_No;  // number equivalent for ratings
      News_Array[ i,4] = "0";  // used for prevents repetition of alerts
                
        } 


Buena suerte a todos.

 
GarF1eld >> :

BTRVODKAex

Para ello se escribe una dll intermedia en c++\cli. No se puede llamar al código gestionado desde mql directamente.



¿Por qué no puedo usar C#? ¿Y dónde puedo encontrar literatura sobre cómo escribir una dll en C++ para MT4?

 
BTRVODKAex >> :

¿Por qué no puedo usar C#? ¿Y dónde puedo encontrar literatura sobre cómo escribir dll en C++ para MT4?

Respondiendo a mi propia pregunta: "Interfiere con el marshalling al llamar a las funciones" :)

>> fue a aprender C++.

 

Hola Señores, ya hice una pregunta en un hilo paralelo, pero probablemente la repita...

MySQL restringe el número máximo de columnas puramente en una tabla, para ser más precisos, el número máximo posible de columnas es 1000, ¿alguien sabe cómo se puede eliminar esta restricción y si es posible? Si no, ¿qué base de datos permite crear tablas con más de 3000 columnas?

 
toxa.forex >> :

Hola Señores, ya hice una pregunta en un hilo paralelo, pero probablemente la repita...

MySQL restringe el número máximo de columnas puramente en una tabla, para ser más precisos, el número máximo posible de columnas es 1000, ¿alguien sabe cómo se puede eliminar esta restricción y si es posible? Si no, ¿qué base de datos permite crear tablas con más de 3000 columnas?

Oracle

 
HIDDEN >> :

Oracle

HIDDEN, gracias por la respuesta, pero podrías ser un poco más específico, ¿a qué Oráculo te refieres? Oracle 9i tiene la misma limitación, máximo 1000 columnas por tabla...

 
toxa.forex >> :

HIDDEN, gracias por la respuesta, pero podrías ser un poco más específico, ¿a qué Oráculo te refieres? Oracle 9i tiene la misma limitación, máximo 1000 columnas en una tabla...

Y las versiones posteriores.

Yo no he trabajado mucho con Oracle. En general, me da vueltas en la cabeza la idea de que si necesitas 3000 columnas, es que no has pensado en algo aquí.... Deberá desglosar la información en tablas y optimizar sus consultas. A continuación, podrá generar cualquier cosa a partir de la base de datos.

Por qué verter toda la botella en un dedal, no lo entiendo.


Explique sus metas y objetivos, tal vez no necesite una base de datos en absoluto.

 
HIDDEN >> :

Y las versiones posteriores.

Yo apenas he trabajado con Oracle. En general, estoy pensando que si necesitas 3000 columnas, es algo que no has pensado -.... Debes desglosar la información por tablas, optimizar tus consultas. Puedes generar lo que quieras a partir de la base de datos.

Por qué verter toda la botella en un dedal, no lo entiendo.


Explique sus metas y objetivos, tal vez no necesite una base de datos en absoluto.

No he averiguado nada sobre las versiones posteriores de Oracle, pero sospecho que las restricciones sobre el número de columnas siguen vigentes...

Sí, dividir la información en tablas es ciertamente posible, pero es la solución menos deseable, ya que aumentará significativamente el tiempo de procesamiento de las consultas debido al aumento de las llamadas a la base de datos... La optimización de las consultas no le servirá de nada, sea cual sea el NF al que quiera reducirlo...

Y estamos hablando de una red neuronal, usar una base de datos no es realmente necesario aquí, pero en mi opinión, es la mejor opción para almacenar más de 3000 parámetros...