Diskussion zum Artikel "Wie man auf die MySQL-Datenbank von MQL5 (MQL4) aus zugreift" - Seite 26

 
Ana Fonseca:
In welchem Ordner muss ich die DLL speichern?
Hier ist das komplette DLL-Update-Paket: https://github.com/elugovoy/MQLMySQL-Project
enthält kompilierte DLLs, die sich in der Metatrader-Ordnerstruktur befinden
 

Hallo Eugeniy,

können Sie eine 64-Version von MQLMySQL.dll bereitstellen. Wenn geladen, mt fordert

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

Hallo Eugeniy,

können Sie eine 64-Version von MQLMySQL.dll bereitstellen. Wenn geladen, mt fordert

Sicher, Sie können kompilierte x64 DLLs von GitHub herunterladen: https: //github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release

Vollständiges Repository des Projekts: https: //github.com/elugovoy/MQLMySQL-Project

Mit freundlichen Grüßen,

Eugene

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

Hallo Eugeniy,

Ich habe mich gefragt, ob es eine Möglichkeit gibt, den Code zum Lesen der Einstellungen aus der Datei

// Lesen der Datenbankanmeldedaten aus der INI-Datei
 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; 

und stattdessen diese Zuweisung zu verwenden

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

ist es möglich, da ich Fehlermeldung als Zugriffsverletzung lesen 0x00000000 MQLMySQL.dll erhalten

Gibt es eine mögliche Lösung?

 
heere:

Hallo Eugeniy,

Ich habe mich gefragt, ob es eine Möglichkeit gibt, den Code zum Lesen der Einstellungen aus der Datei

und stattdessen diese Zuweisung zu verwenden

ist es möglich, da ich eine Fehlermeldung als Zugriffsverletzung lesen 0x00000000 MQLMySQL.dll

Gibt es eine mögliche Lösung?

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306;
Socket   = "0"; // diese Variable muss ein String sein, aber nicht int
ClientFlag = CLIENT_MULTI_STATEMENTS; 

vielleicht helfen diese

 
MARCOS DALCIN ALVES DINIZ:

Es funktionierte, nachdem ich die Version von OpenSSL aktualisiert hatte. Danke fürs Zuhören.

Hallo~

Ich hatte auch die Fehlerfrage von [126]:


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

Aufruf von'cMySqlVersion' nicht möglich,'MQLMySQL.dll' ist nicht geladen

nicht aufgelöster Importfunktionsaufruf


MARCOS erwähnte, dass dies nach der Aktualisierung der OpenSSL-Version normal ist

Wie kann ich die OpenSSL-Version aktualisieren?

Ich danke Ihnen! ~



PS.

Da ich mit diesem Bereich nicht vertraut bin

möchte ich noch einmal fragen

Ich sehe, dass es drei dll-Dateien in Ihrem Libraries-Ordner gibt

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


Ich habe die MySQL-Software installiert.

Wurden diese dll-Dateien aus dem Pfad unter ..\Programmdateien\MySQL kopiert?

Wenn ja, aus welchem Ordner wurden sie kopiert?


 
zboo:

Hallo~

Ich hatte auch die Fehlerfrage von [126]:


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

Cannot call'cMySqlVersion','MQLMySQL.dll' ist nicht geladen

nicht aufgelöster Importfunktionsaufruf


MARCOS erwähnte, dass dies nach der Aktualisierung der OpenSSL-Version normal ist

Wie kann ich die OpenSSL-Version aktualisieren?

Ich danke Ihnen! ~



PS.

Da ich mit diesem Bereich nicht vertraut bin

möchte ich nochmals fragen

Wie ich sehe, befinden sich in Ihrem Libraries-Ordner drei dll-Dateien

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


Ich habe die MySQL-Software installiert

Werden diese dll-Dateien aus dem Pfad unter ..\Programmdateien\MySQL kopiert?

Wenn ja, aus welchem Ordner wurden sie kopiert?


Kann mir jemand helfen, die gleiche Situation zu lösen?

Vielen Dank~~~~

 
Eugeniy Lugovoy:

vielleicht hilft das

Vielen Dank! Es hat das Problem gelöst.

 

@Eugeniy Lugovoy

Guten Tag, Eugeniy. Vielen Dank für den Artikel. Könnten Sie mich bitte beraten? Ich bin auf folgendes Problem gestoßen: Die DLL funktioniert gut, wenn ich den EA nicht auf dem Testgerät ausführe. Auf dem Tester gibt es die folgende Fehlermeldung: "Cannot load 'C:\Users\...\MQL5\Libraries\MQLMySQL.dll' [126]". Dies macht es unmöglich, den EA mit historischen Daten zu testen.

Problemkontext: Ich verwende die Datenbank, um Eingabeparameter für den Handel zu laden. Ich speichere auch die notwendigen Informationen nach dem Handel. Der Fehler tritt nur auf dem Testgerät auf.


Was ich versucht habe zu tun:

- #property tester_library "MQLMySQL.dll" hinzufügen

- schreibe den Pfad zur dll separat in seiner Gesamtheit

- doppelt geprüft, ob die Datei, die nicht geladen wird, im Ordner ist.

Nichts hilft, die Datei ist im Ordner, aber ich kann sie nicht laden. Bitte sagen Sie mir, wo ich noch graben kann.

 

Kann mir jemand bestätigen, ob ich die richtige Verbindungszeichenfolge verwende?

Ich verwende "127.0.0.1" für den Host

Ich verwende "user", "pass" und "database" in Anführungszeichen (3 getrennte Parameter)

Dann setze ich NULL für den Socket und 0 für das Client-Flag ein.

(Mein System ist Win 10)


Ich erhalte eine Fehlermeldung, dass keine Datenbankverbindung besteht, wenn ich versuche, eine Einfügung vorzunehmen.