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

 

C'est très utile.

Mais il y a un problème lorsque j'insère un mot chinois dans mysql en utilisant une commande comme celle-ci : "INSERT INTO table (name,value) VALUES ('Buy Order','Sell Order') ;", il retourne &# nbsp;une description d'erreur "Query is empty. nbsp;une description d'erreur "La requête est vide".

Comment résoudre ce problème.

Comment résoudre ce problème.

 

Chers collègues, veuillez dupliquer la (les) version(s) actuelle(s),

J'ai personnellement besoin d'une version pour MQL5 x64, je ne peux pas la télécharger en utilisant les liens du fil de discussion - 404

 
Khrisna Gunanasurya:

Bonjour, pourquoi ai-je reçu ce message ? comment le résoudre ?

La connexion a échoué ! Erreur : Impossible de se connecter au serveur MySQL sur 'mysql.hostinger.co.id' (10061) <~~~ avant c'était 10060, je ne sais pas pourquoi ça change à celui-là.

Je ne sais pas pourquoi il change en 10060. Quelqu'un peut-il m'aider à résoudre ce problème ? J'ai déjà essayé de googler mais je me suis heurté à un mur.

Je vous remercie.

Bonjour Khrisna, Avez-vous résolu l'erreur ?
 

Bonjour,

J'ai une question à poser. J'aimerais enregistrer les transactions dans une table MySQL mais je reçois toujours un message d'erreur indiquant que la requête est vide.

Lorsque j'imprime l'erreur et la requête, tout est là :

Erreur #1065 : Query was empty ; 3

Requête : INSERT INTO algo_trades (date, time, curr, ticket, error, trade, lot, entry, sl, tp, spread) VALUES ('2017-9-1','14:3:58','GBPUSD',8705334,0,'Sell',2,1.29892,1.29961,1.29812,0.9)

Qu'est-ce qui ne va pas ? J'utilise cette bibliothèque dans un autre code de la même manière, et cela fonctionne parfaitement.

Merci beaucoup Eugeniy pour ce partage.

 
cikahun:

Bonjour,

J'ai une question à poser. J'aimerais enregistrer les transactions dans une table MySQL mais je reçois toujours un message d'erreur indiquant que la requête est vide.

Lorsque j'imprime l'erreur et la requête, tout est là :

Erreur #1065 : Query was empty ; 3

Requête : INSERT INTO algo_trades (date, time, curr, ticket, error, trade, lot, entry, sl, tp, spread) VALUES ('2017-9-1','14:3:58','GBPUSD',8705334,0,'Sell',2,1.29892,1.29961,1.29812,0.9)

Qu'est-ce qui ne va pas ? J'utilise cette bibliothèque dans un autre code de la même manière, et cela fonctionne parfaitement.

Merci beaucoup Eugeniy de l'avoir partagée.

Il est probablement plus rapide d'utiliser Google.

http://www.joellipman.com/articles/sql/error-1065-query-was-empty.html

SQL
  • 2012.12.13
  • Joel Lipman
  • www.joellipman.com
Posted on Dec 13, 12 at 01:12 PM What? In view of the fact that this error pops up in so many systems I take over, I have often gone down the wrong path following the red herring as it were when in fact the answer to this is very common. Why? Bespoke systems are the usual suspects. Developers will have told the system what to do when...
 
Alain Verleyen:

Il est probablement plus rapide d'utiliser Google.

http://www.joellipman.com/articles/sql/error-1065-query-was-empty.html


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.

 

J'ai utilisé la dll attechtment pour exécuter EA, mais cela n'a pas fonctionné et le journal a indiqué

"Impossible de charger 'C:\Users\ccb\AppData\Roaming\MetaQuotes\Tester\67381DD86A2959850232C0BA725E5966\Agent-127.0.0.1-3000\MQL5\libraries' [193] Impossible d'appeler 'cMySqlVersion' [193] J'ai utilisé la dll attechtment pour exécuter EA mais cela n'a pas fonctionné et le journal a affiché MQLMySQL.dll' [193]
Impossible d'appeler 'cMySqlVersion', '... \libraries\MQLMySQL.dll' n'est pas chargé
appel de fonction d'importation non résolu"

J'utilise le mt5 x64

et voici mon code.


#include <MQLMySQL.mqh>
//--- paramètres d'entrée
string INI ;
string Host, User, Password, Database, Socket ; // informations d'identification de la base de données
int Port, ClientFlag ; int ClientFlag ;
int DB ; // identifiant de la base de données
//+------------------------------------------------------------------+
//| Initialisation de l'expert fonction & nbsp ; |
//+------------------------------------------- -----------------------+
int OnInit()
{
Print (MySqlVersion()) ;
INI = TerminalInfoString(TERMINAL_PATH) + "\\\N- MQL5\NScripts & nbsp ;". MQL5\Scripts\\MyConnection.ini" ;
// 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 ; //(int)StringToInteger(ReadIni(INI, "MYSQL", "ClientFlag")) ;

Print (" Host : ",Host, ", User : ", User, ", Database : ",Database) ;

// ouvre la connexion à la base de données
Print ("Connecting...") ;

DB = MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag) ;

if (DB == -1)
Print (" La connexion a échoué!Erreur : "+") ; if (DB == -1) Print (" Connection failed!Error : "+MySqlErrorDescription) ;
else Print ("Connected!DBID#",DB) ;
return 1 ;
}
//+-------------------- ----------------------------------------------+
//| Fonction de désinitialisation experte & nbsp ; &nbsp |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{

&nbsp ; MySqlDisconnect(DB) ;


}
//+--------------------------------------------------------------- ---+
//| Fonction Expert tick & nbsp ; &nbsp ||
//+------------------------------------------------------------------+
void OnTick()
{
//---
& nbsp;
}
//+------------------------------------------------------------------+

le fichier dll de la version X64 ne peut pas être chargé.

 
J'utilise unerequête multi-insert mais cela ne fonctionne pas, mais lorsque j'utilise une requête single-insert, cela fonctionne, voici la requête

Query = Query + "INSERT INTO `history` (an, oi, oc) VALUES (" + (string) AccountNumber() + ", " + (string) OrderTicket() + ", '" + (string) OrderComment() + "') ;";


Qu'est-ce qui ne va pas ? Cela ne fonctionne qu'avec l'insertion d'un seul élément.

 
Eugeniy Lugovoy:

Hmmm... c'est quelque part dans l'ancienne bibliothèque, dans les dernières versions (postées dans la discussion) j'ai les règles si ma mémoire est bonne :)

J'essaierai de le résoudre cette semaine jusqu'au week-end, si je ne suis pas surchargé de travail.

Bonjour Eugène.

Merci beaucoup pour cette bibliothèque, je l'utilise activement dans mon projet.

Pourriez-vous me dire si vous avez réussi à résoudre le problème avec UTF ? Et comment puis-je télécharger la version actuelle ?

J'ai besoin de la version MQL4 x32-x64. Merci encore. )

 
Pouvez-vous m'aider à changer le jeu de caractères en UTF-8, merci beaucoup.