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

 
Ana Fonseca:
dans quel dossier dois-je enregistrer la DLL ?
Voici le package complet de mise à jour des DLL :https://github.com/elugovoy/MQLMySQL-Project
inclut les dll compilées situées dans la structure du dossier metatrader
 

Bonjour Eugeniy,

Pouvez-vous fournir une version 64 de MQLMySQL.dll. Lorsqu'il est chargé, mt demande

'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' is not 64-bit version
Cannot load 'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' [193]
 
Xiaowei Yan:

Bonjour Eugeniy,

Pouvez-vous fournir une version 64 de MQLMySQL.dll. Lorsqu'il est chargé, mt demande

Bien sûr, vous pouvez télécharger les DLL x64 compilées sur GitHub : https://github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release

Dépôt complet du projet : https://github.com/elugovoy/MQLMySQL-Project

Cordialement, je vous prie d'agréer, Madame, Monsieur, l'expression de mes salutations distinguées,

Eugène

elugovoy/MQLMySQL-Project
elugovoy/MQLMySQL-Project
  • elugovoy
  • github.com
MQL & DLL libraries for working with MySQL database - elugovoy/MQLMySQL-Project
 

Bonjour Eugeniy,

Je me demandais s'il y avait un moyen de changer le code de lecture des paramètres à partir du fichier

// lecture des informations d'identification de la base de données à partir du fichier INI
 Host = ReadIni(INI, "MYSQL", "Host");
 User = ReadIni(INI, "MYSQL", "User");
 Password = ReadIni(INI, "MYSQL", "Password");
 Database = ReadIni(INI, "MYSQL", "Database");
 Port     = (int)StringToInteger(ReadIni(INI, "MYSQL", "Port"));
 Socket   = ReadIni(INI, "MYSQL", "Socket");
 ClientFlag = CLIENT_MULTI_STATEMENTS; 

et d'utiliser cette affectation à la place

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306
Socket   = 0
ClientFlag = CLIENT_MULTI_STATEMENTS; 

Est-ce possible, car je reçois un message d'erreur comme Access violation read 0x00000000 MQLMySQL.dll ?

Y a-t-il une solution possible ?

 
heere:

Bonjour Eugeniy,

Je me demandais s'il y avait un moyen de modifier le code de lecture des paramètres à partir du fichier

et d'utiliser cette affectation à la place

Est-ce possible, car je reçois un message d'erreur comme Access violation read 0x00000000 MQLMySQL.dll

Y a-t-il une solution possible ?

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306;
Socket   = "0"; // cette variable doit être une chaîne, mais pas un int
ClientFlag = CLIENT_MULTI_STATEMENTS; 

Peut-être que ceci peut aider

 
MARCOS DALCIN ALVES DINIZ:

Cela a fonctionné après que j'ai mis à jour la version d'OpenSSL. Merci de m'avoir écouté.

Hi~

J'ai également eu la question d'erreur [126] :


Impossible de charger 'C:Úsers\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126].

Impossible d'appeler 'cMySqlVersion', 'MQLMySQL.dll' n'est pas chargé

appel de fonction d' importation non résolu


MARCOS a indiqué que c'était normal après la mise à jour de la version d'OpenSSL.

Comment puis-je mettre à jour la version d'OpenSSL ?

Je vous remercie ! ~



PS.

Parce que je ne suis pas familier avec ce domaine

je me permets de vous poser à nouveau la question

Je vois qu'il y a trois fichiers dll dans votre dossier Libraries

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


J'ai installé le logiciel MySQL

Ces fichiers dll sont-ils copiés à partir du chemin d'accès situé sous ...\Program Files\MySQL ?

Si oui, à partir de quel dossier ont-ils été copiés ?


 
zboo:

Hi~

J'ai également eu la question d'erreur de [126] :


Impossible de charger 'C:Úsers\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126].

Impossible d'appeler 'cMySqlVersion', 'MQLMySQL.dll' n'est pas chargé

appel de fonction d' importation non résolu


MARCOS a indiqué que c'était normal après la mise à jour de la version d'OpenSSL.

Comment puis-je mettre à jour la version d'OpenSSL ?

Je vous remercie ! ~



PS.

Parce que je ne connais pas ce domaine

je me permets de demander à nouveau

Je vois qu'il y a trois fichiers dll dans votre dossier Libraries

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


J'ai installé le logiciel MySQL

Ces fichiers dll sont-ils copiés à partir du chemin d'accès sous ...\Program Files\MySQL ?

Si oui, à partir de quel dossier ont-ils été copiés ?


Quelqu'un peut-il m'aider à résoudre la même situation ?

Merci~~~~

 
Eugeniy Lugovoy:

Peut-être que cela peut aider

Merci beaucoup. Le problème est résolu.

 

@Eugeniy Lugovoy

Bonjour, Eugeniy. Merci beaucoup pour cet article. Pourriez-vous me conseiller ? J'ai rencontré le problème suivant : la dll fonctionne bien si je lance l'EA pas sur le testeur. Sur le testeur, il donne l'erreur suivante : "Cannot load 'C:\Users\...\MQL5\Libraries\MQLMySQL.dll' [126]". Il est donc impossible de tester l'EA sur des données historiques.

Contexte du problème: J'utilise la base de données pour charger les paramètres d'entrée pour le trading. Je sauvegarde également les informations nécessaires après le trading. L'erreur ne se produit que sur le testeur.


Ce que j'ai essayé de faire :

- ajouter #property tester_library "MQLMySQL.dll"

- écrire le chemin d'accès à la dll séparément dans son intégralité

- J'ai vérifié deux fois si le fichier qui n'est pas chargé se trouve dans le dossier.

Rien n'y fait, le fichier est dans le dossier, mais je ne peux pas le charger. Merci de me dire où je peux encore chercher.

 

Quelqu'un peut-il me confirmer que j'utilise la bonne chaîne de connexion ?

J'utilise "127.0.0.1" pour l'hôte

J'utilise les paramètres user , pass , et database entre guillemets ( 3 paramètres distincts )

Je mets NULL pour le socket et 0 pour le client flag.

( Mon système est Win 10 )


J'obtiens une erreur disant qu'il n'y a pas de connexion à la base de données lorsque j'essaie d'exécuter une insertion.