Comment accéder à la base de données depuis MQL4 , ORACL , MSSQL, MySQL - page 6

 

tout fonctionne et la base se gonfle ! :)

Bonne chance.

 
TheVilkas писал(а) >>

tout fonctionne et la base se gonfle ! :)

Bonne chance.

Score ! !!

Un exemple qui fonctionne bien.

Merci

 

HOORAY ! Ma base de données a également fonctionné correctement via libmysql.dll. Je ne comprends pas pourquoi le résultat est renvoyé avec des hiéroglyphes au début, puis l'information souhaitée. J'ai retravaillé le code ci-dessus.

Requête : "SELECT concat(';',concat_ws(';',date,titre,impact)) FROM calendar WHERE (date entre ADDDATE( NOW( ), INTERVAL -4 DAY ) AND ADDDATE( NOW( ), INTERVAL +2 DAY ) AND (currency='"+symb1+"' XOR currency='"+symb2+"') ORDER BY date"

Code :

 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
                
        } 


Bonne chance à tous !

 
GarF1eld >> :

BTRVODKAex

À cette fin, une dll intermédiaire en c++\cli est écrite. Vous ne pouvez pas appeler le code géré depuis mql directement.



Pourquoi ne puis-je pas utiliser C# ? Et où puis-je trouver de la documentation sur l'écriture d'une dll en C++ pour MT4 ?

 
BTRVODKAex >> :

Pourquoi ne puis-je pas utiliser C# ? Et où puis-je trouver de la documentation sur l'écriture de dll en C++ pour MT4 ?

Je réponds à ma propre question : "Cela interfère avec le marshalling lors de l'appel de fonctions" :)

>> Je suis allé apprendre le C++.

 

Bonjour Messieurs, j'ai déjà posé une question dans un fil parallèle, mais je vais probablement la répéter...

MySQL restreint le nombre maximal de colonnes pures dans une table, pour être plus précis, le nombre maximal possible de colonnes est de 1000, quelqu'un sait-il comment supprimer cette restriction et est-ce même possible ? Sinon, quelle base de données vous permet de créer des tables de plus de 3000 colonnes ?

 
toxa.forex >> :

Bonjour Messieurs, j'ai déjà posé une question dans un fil parallèle, mais je vais probablement la répéter...

MySQL restreint le nombre maximal de colonnes pures dans une table, pour être plus précis, le nombre maximal possible de colonnes est de 1000, quelqu'un sait-il comment cette restriction peut être supprimée et est-ce même possible ? Sinon, quelle base de données vous permet de créer des tables de plus de 3000 colonnes ?

Oracle

 
HIDDEN >> :

Oracle

HIDDEN, merci pour la réponse, mais pourriez-vous être un peu plus précis, à quel Oracle faites-vous référence ? Oracle 9i a la même limitation, max 1000 colonnes par table...

 
toxa.forex >> :

HIDDEN, merci pour la réponse, mais pourriez-vous être un peu plus précis, à quel Oracle faites-vous référence ? Oracle 9i a la même limitation, 1000 colonnes maximum dans une table...

Et les versions ultérieures.

Je n'ai pas beaucoup travaillé avec Oracle moi-même. En général, l'idée tourne dans ma tête que si vous avez besoin de 3000 colonnes, c'est que vous n'avez pas pensé à quelque chose ici..... Vous devez décomposer les informations en tables et optimiser vos requêtes. Vous pouvez ensuite générer n'importe quoi à partir de la base de données.

Pourquoi verser la bouteille entière dans un dé à coudre, je ne comprends pas.


Expliquez vos buts et objectifs, peut-être n'avez-vous pas du tout besoin d'une base de données.

 
HIDDEN >> :

Et les versions ultérieures.

Je n'ai pratiquement jamais travaillé avec Oracle moi-même. En général, je pense que si vous avez besoin de 3000 colonnes, c'est que vous n'y avez pas pensé -..... Vous devez répartir les informations par tables, optimiser vos requêtes. Vous pouvez générer tout ce que vous voulez à partir de la base de données.

Pourquoi verser la bouteille entière dans un dé à coudre, je ne comprends pas.


Expliquez vos buts et objectifs, peut-être n'avez-vous pas du tout besoin d'une base de données.

Je ne me suis pas renseigné sur les versions ultérieures d'Oracle, mais je soupçonne que les restrictions sur le nombre de colonnes sont toujours en place...

Oui, la division des informations en tables est certainement possible, mais c'est la solution la moins souhaitable, car elle augmentera considérablement le temps de traitement des requêtes en raison de l'augmentation des appels à la base de données... L'optimisation des requêtes ne vous aidera pas, quelle que soit la NF à laquelle vous voulez la réduire...

Et nous parlons d'un réseau neuronal, l'utilisation d'une base de données n'est pas vraiment nécessaire ici, mais à mon avis, c'est la meilleure option pour stocker plus de 3000 paramètres...