Discussion de l'article "Comment accéder à la base de données MySQL à partir de MQL5 (MQL4)" - page 18

 

Bonjour, j'ai lu ce document avec intérêt.

Puis-je vous poser une question ?

Je voudrais savoir comment confirmer la connexion avec MySQL.

Veuillez m'apprendre comment confirmer la connexion.


About original japanese : Et le lundi, quand le marché commence, une erreur est trouvée dans le projet. Par conséquent, nous vous recommandons vivement de confirmer la connexion et/ou de vous reconnecter à la base de données à des intervalles inférieurs au délai d'attente spécifié dans la configuration du serveur.

Cela signifie qu'après cela, vous découvrirez une erreur dans votre projet le lundi. Je vous recommande donc de confirmer que la connexion est vivante ou morte à un intervalle de temps plus court que le délai d'attente spécifié dans la configuration du serveur.


Je vous remercie de votre attention.

 

Bonjour,...

J'ai écrit le code pour l'instant comme ci-dessous. 1.

Créer une table qui a un enregistrement de temps lors de la confirmation de la connexion. 2.

Créez une table qui a un enregistrement de temps lorsque vous confirmez la connexion. 2.

Si l'UpSert échoue, essayez de resynchroniser avec MySQL.

Veuillez m'indiquer s'il existe des méthodes pour confirmer la connexion.

Veuillez m'indiquer s'il existe des méthodes pour confirmer la connexion.

//+------------------------------------------------------------------+
//| Vérifier et reconnecter la connexion MySQL &nbsp ; & nbsp; |
//+------------------------------------------------------------------+
bool DBAccess::resync(void)
{
    string  qry = "";

    string  update_time = (string)TimeCurrent();

    qry += "INSERT INTO `" + sync_table + "` (id, update_time) ";
    qry += "VALUES (\'sync\', \'" + update_time + "\') ";
    qry += "ON DUPLICATE KEY UPDATE update_time = \'" + update_time + "\';";
    
    if (MySqlExecute(DBID, qry))    { return true; }
    
    echo("[Try] Database has been disconnected. EA will try resynchronization.");

    bool    sync        = syncDB();
    
    if(!sync)   { return false; }

    return true;
}
for the time beingの意味・使い方 - 英和辞典 Weblio辞書
  • ejje.weblio.jp
for the time beingの意味や使い方 当分の間, さしあたり, 目下. - 約1037万語ある英和辞典・和英辞典。発音・イディオムも分かる英語辞書。
 
Y a-t-il quelqu'un ici qui puisse écrire un wrapper de MQL5 vers MS SQL, et qui soit également intéressé par un wrapper pour VOLTDB.
 

Je voudrais demander, je n'ai pas déconnecté l'opération de la base de données, mais la base de données commence juste à connecter des données normales au fil du temps, ne peut pas lire directement les informations de la base de données, mais il n'y a pas d'erreur dans le message d'erreur. lire les informations de la base de données, mais il n'y a pas de message d'erreur.

J'utilise MT4

Dossiers :
20180412.log  2067 kb
 
cikahun:

Bonjour Alain,

Merci beaucoup ! J'ai pu comprendre ce qui n'allait pas.

Dans mon cas, le courtier me donne le symbole de la devise avec un signe £. Je l'ai supprimé et cela fonctionne.

Merci encore.

Je rencontre également cette erreur car mon courtier suffixe également les symboles avec (£). Quelqu'un sait-il pourquoi cela pose problème et quelle est la solution ? La chaîne SQL fonctionne correctement lorsqu'elle est saisie dans MYSQL Workbench, mais j'obtiens le message "Query was empty" lorsque j'exécute la requête par l'intermédiaire de cette bibliothèque.
 
Eugeniy Lugovoy:

Merci d'avoir pris le temps de lire cet article. J'ai également vérifié votre(https://www.mql5.com/fr/code/11114), j'ai trouvé une telle solution il y a longtemps (avant MT4 build 600) et j'ai aimé l'idée de rendre MQL et MySQL conviviaux. Mais il y a une chose que je ne veux pas utiliser, ce sont les tableaux pour récupérer les données de la base. C'est pourquoi j'ai créé cette solution pour MT4 et MT5.

J'ai également oublié d'ajouter le projet basé sur x64 à l'article, vous pouvez donc le télécharger ici, dans la discussion. Rien n'a été changé dans les sources, seule la DLL a été recompilée pour x64.

Bonne chance,

Eugène

Bonjour Eugeniy Lugovoy, merci pour votre article, j'ai utilisé le projet basé sur x32 dans mon (64bit windows avec mql5) et j'ai eu cette erreur :

2018.06.04 17:58:52.879 MySQL-001 (XAUUSD,H1) Cannot load '..\libraries\MQLMySQL.dll' [126]

J'ai essayé d'utiliser votre projet basé sur x64 que vous avez téléchargé sur ce forum, mais j'ai toujours l'erreur ci-dessus.

J'ai essayé d'exécuter l'un des scripts de deux façons,

J'ai d'abord placé les fichiers dll à cette adresse : ...\MQL5\Libraries

Deuxièmement, je les ai placés à cette adresse : C:\NWindows\NSysWOW64

mais aucun des deux n'a fonctionné.

 

BonjourEugeniy Lugovoy


J'obtiens l'erreur suivante, je ne sais pas ce qui se passe !


L'erreur se produit dans le fichier MQLMySQL.mqh

StrToInteger' - fonction non définie MQLMySQL.mqh 224 10


StrToDouble' - fonction non définie MQLMySQL.mqh 229 10

sur les lignes de code suivantes :



int MySqlGetFieldAsInt(int pCursorID, int pField)

{

return (StrToInteger(MySqlGetRowField(pCursorID, pField))) ;

}


double MySqlGetFieldAsDouble(int pCursorID, int pField)

{

return (StrToDouble(MySqlGetRowField(pCursorID, pField)) ;)

}


Cordialement,



 
MetaQuotes Software Corp.:

Un nouvel article Comment accéder à la base de données MySQL depuis MQL5 (MQL4 ) a été publié :

Auteur : Eugeniy Lugovoy

Bonjour Eugeniy Lugovoy,

Tout d'abord, merci d'avoir pris le temps de réaliser ce projet.

Cela fait des semaines que je cherche comment importer/mettre à jour toutes les transactions ouvertes/fermées d'un compte de trading dans une table MySQL, si possible en temps réel. Y a-t-il un moyen de le faire en utilisant votre bibliothèque ?

Merci d'avance.

Dragos

 

win2008 ou win10 X64

Journal d'exécution


2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Impossible de charger 'C:Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\ 67381DD86A2959850232C0BA725E5966\MQL5\libraries\MQLMySQL.dll' [193]

2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Impossible d'appeler 'ReadIni', '... \libraries\MQLMySQL.dll' n'est pas chargé

2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) appel de fonction d'importation non résolu



L'aide de quelqu'un

 
Eugeniy Lugovoy:
Pour les plateformes x64, utilisez les bibliothèques suivantes (avec discussion)

win2018R2 ou win10 X86


2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Cannot load 'C:Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\ 67381DD86A2959850232C0BA725E5966\MQL5\libraries\MQLMySQL.dll' [193]
2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) Impossible d'appeler 'ReadIni', '... \libraries\MQLMySQL.dll' n'est pas chargé
2018.09.15 20:10:26.742 MySQL-001 (EURUSD,H1) appel de fonction d'importation non résolu


? ???