Discussion de l'article "Comment accéder à la base de données MySQL à partir de MQL5 (MQL4)" - page 24
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Qu'en est-il du support de caching_sha2_password ? Y a-t-il un moyen de le gérer ou d'installer simplement mysql_native_password ?
Hy jusqu'à présent, le support natif est le seul supporté. est-ce que quelqu'un a vraiment besoin du support sha2 dans cette solution ?
Donc votre serveur de base de données n'est pas localisé localement ou même sous vpn ?
Bonjour @EugeniyLugovoy et merci pour votre travail !
Dans la version actuelle de votre implémentation, existe-t-il un moyen de récupérer le "LAST_INSERT_ID" après une opération INSERT (dans une table avec une colonne AUTO_INCREMENT) ?
Merci d'avance et bonne journée :)Bonjour @EugeniyLugovoy et merci pour votre travail !
Dans la version actuelle de votre implémentation, existe-t-il un moyen de récupérer le "LAST_INSERT_ID" après une opération INSERT (dans une table avec une colonne AUTO_INCREMENT) ?
Merci d'avance et bonne journée :)Bonjour arsenico42, vous pouvez essayer d'effectuer une insertion dans une requête et de sélectionner LAST_INSERT_ID dans une autre, mais je ne peux pas vous recommander cette méthode, car LAST_INSERT_ID est une fonction qui renvoie une variable globale de base de données, et une autre insertion (d'un autre utilisateur, exécutée simultanément) entre votre insertion initiale et la sélection de LAST_INSERT_ID peut affecter la valeur de LAST_INSERT_ID.
Cela ne dépend pas de la bibliothèque, c'est la façon dont mysql/mariadb fonctionne.
Mais je peux vous conseiller de créer une fonction du côté de la base de données pour insérer les valeurs requises, sélectionner LAST_INSERT_ID et retourner cet ID comme valeur de la fonction :
En MQL, vous devez ouvrir un curseur pour la requête :
qry="SELECT import_funds_add('bonuses.csv','c:\\broker imports\\XXX-FX','NEW','No errors') as last_id";puis obtenir la valeur du curseur habituel et fermer le curseur.
Ainsi, au lieu d'utiliser ces commandes séparément dans MQL, vous pouvez simplement les combiner dans une fonction du côté de la base de données.
Ce n'est qu'un exemple tiré d'un système réel.
Bonjour elugovoy
Superbe article et superbes bibliothèques.
J'essaie d'utiliser vos exemples sous MT5 mais j'obtiens cette erreur :
2014.12.15 15:44:16.387 MySQL-001 'C:\Users\....\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\libraries\MQLMySQL.dll' n'est pas une version 64 bits.
Faites-vous tourner MT5 sous un environnement 32 bits ?
Pourriez-vous m'aider ?
Je vous remercie de votre aide.
Carmine Marrone.
Bonjour Carmine, vous pouvez télécharger la version x64 à partir des sources sur github.
https://github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release
Hey @Eugeniy Lugovoy, tout d'abord merci pour votre contribution à la communauté.
Je suis bloqué ici :
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
Hey @Eugeniy Lugovoy, tout d'abord merci pour votre contribution à la communauté.
Je suis bloqué ici :
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
Assurez-vous que les fichiers MQLMySQL.dll et MQLMySQL.def se trouvent dans votre dossier "C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\"
Comme vous pouvez le voir, si vous exécutez des programmes MQL en mode Tester, le chemin vers les bibliothèques sera différent (à cause de l'UAC).
multi-insert obtient une erreur.
Erreur d'instructions multiples : Vous avez une erreur dans votre syntaxe SQL ; consultez le manuel correspondant à votre version du serveur MySQL pour connaître la bonne syntaxe à utiliser près de ...
multi-insert obtient une erreur.
Erreur d'instructions multiples : Vous avez une erreur dans votre syntaxe SQL ; consultez le manuel correspondant à votre version du serveur MySQL pour connaître la bonne syntaxe à utiliser près de ...
Assurez-vous que vous avez défini le drapeau client multi-déclarations lors de l'ouverture de la connexion à la base de données.