Discussione sull’articolo "Come accedere al database MySQL da MQL5 (MQL4)" - pagina 26

 
Ana Fonseca:
in quale cartella devo salvare la DLL?
Ecco il pacchetto completo di aggiornamento delle DLL: https://github.com/elugovoy/MQLMySQL-Project
include le DLL compilate che si trovano nella struttura della cartella metatrader
 

Ciao Eugeniy,

puoi fornire una versione a 64 di MQLMySQL.dll. Quando viene caricato, mt richiede

'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:

Ciao Eugeniy,

puoi fornire una versione a 64 di MQLMySQL.dll. Quando viene caricato, mt richiede

Certo, puoi scaricare le DLL x64 compilate da GitHub: https: //github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release

Repository completo del progetto: https: //github.com/elugovoy/MQLMySQL-Project

Saluti,

Eugene

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

Ciao Eugeniy,

Mi stavo chiedendo se c'è un modo per cambiare il codice di lettura delle impostazioni dal file

// lettura delle credenziali del database dal file 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; 

e utilizzare questa assegnazione invece

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

è possibile, come sto ricevendo il messaggio di errore come violazione di accesso leggere 0x00000000 MQLMySQL.dll

Qualsiasi soluzione possibile?

 
heere:

Ciao Eugeniy,

Mi chiedevo se c'è un modo per modificare il codice di lettura delle impostazioni dal file

e utilizzare invece questa assegnazione

è possibile, come sto ricevendo il messaggio di errore come violazione di accesso leggere 0x00000000 MQLMySQL.dll

Qualche possibile soluzione?

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306;
Socket   = "0"; // questa variabile deve essere stringa, ma non int
ClientFlag = CLIENT_MULTI_STATEMENTS; 

forse questo aiuto

 
MARCOS DALCIN ALVES DINIZ:

Ha funzionato dopo aver aggiornato la versione di OpenSSL. Grazie per avermi ascoltato.

Ciao!

Anch'io ho avuto l'errore [126]:


Impossibile caricare 'C:\Users\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126]

Impossibile chiamare 'cMySqlVersion', 'MQLMySQL.dll' non è caricato.

chiamata di funzione di importazione non risolta


MARCOS ha detto che è normale dopo l'aggiornamento della versione di OpenSSL.

Come posso aggiornare la versione di OpenSSL?

Grazie! ~



PS.

Poiché non ho familiarità con questo campo

Voglio chiedere di nuovo

Vedo che ci sono tre file dll nella vostra cartella Libraries

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


Ho installato il software MySQL

Questi file dll sono stati copiati dal percorso sotto ..\Program Files\MySQL?

Se sì, da quale cartella sono stati copiati?


 
zboo:

Ciao!

Anche io ho avuto la domanda di errore di [126]:


Impossibile caricare 'C:\Users\programer01\Desktop\MyMT5\MQL5\Libraries\MQLMySQL.dll' [126]

Impossibile chiamare 'cMySqlVersion', 'MQLMySQL.dll' non è caricato.

chiamata di funzione di importazione non risolta


MARCOS ha detto che è normale dopo l'aggiornamento della versione di OpenSSL.

Come posso aggiornare la versione di OpenSSL?

Grazie! ~



PS.

Poiché non ho familiarità con questo campo

Voglio chiedere di nuovo

Vedo che ci sono tre file dll nella cartella Libraries

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


Ho installato il software MySQL

Questi file dll sono copiati dal percorso sotto ..\Program Files\MySQL?

Se sì, da quale cartella sono stati copiati?


Qualcuno può aiutarmi a risolvere la stessa situazione?

Grazie~~~~

 
Eugeniy Lugovoy:

forse questo aiuta

Grazie mille. Ha risolto il problema.

 

@Eugeniy Lugovoy

Buon pomeriggio, Eugeniy. Grazie mille per l'articolo. Potresti per favore darmi un consiglio? Ho riscontrato il seguente problema: la dll funziona bene se eseguo l'EA non sul tester. Sul tester dà il seguente errore: "Impossibile caricare 'C:\Users\...\MQL5\Libraries\MQLMySQL.dll' [126]". Questo rende impossibile testare l'EA sui dati storici.

Contesto del problema: utilizzo il database per caricare i parametri di input per il trading. Inoltre, salvo le informazioni necessarie dopo il trading. L'errore si verifica solo sul tester.


Cosa ho provato a fare

- aggiungere #property tester_library "MQLMySQL.dll"

- scrivere separatamente il percorso della dll nella sua interezza

- ho ricontrollato se il file che non viene caricato si trova nella cartella.

Niente aiuta, il file è nella cartella, ma non riesco a caricarlo. Per favore, ditemi dove altro posso scavare.

 

Qualcuno può confermare che sto usando la stringa di connessione giusta?

Sto utilizzando "127.0.0.1" per l'host

Sto usando user, pass e database tra virgolette (3 parametri separati).

Metto NULL per il socket e 0 per il flag del client.

(Il mio sistema è Win 10)


Ricevo un errore che dice che non c'è una connessione al database quando cerco di eseguire un inserimento.