"MQL5'ten (MQL4) MySQL Veritabanına Nasıl Erişilir" makalesi için tartışma - sayfa 26

 
Ana Fonseca:
DLL'yi hangi klasöre kaydedeceğim?
İşte DLL güncelleme paketinin tamamı: https://github.com/elugovoy/MQLMySQL-Project
metatrader klasör yapısında bulunan derlenmiş dll'leri içerir
 

Merhaba Eugeniy,

MQLMySQL.dll'in 64 sürümünü sağlayabilir misiniz? Yüklendiğinde, mt şunları soruyor

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

Merhaba Eugeniy,

MQLMySQL.dll'in 64 sürümünü sağlayabilir misiniz? Yüklendiğinde, mt şunları sorar

Elbette, derlenmiş x64 DLL'leri GitHub'dan indirebilirsiniz: https: //github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release

Projenin tam deposu: https: //github.com/elugovoy/MQLMySQL-Project

Saygılar,

Eugene

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

Merhaba Eugeniy,

Ayarları dosyadan okuma kodunu değiştirmenin bir yolu olup olmadığını merak ediyordum

// INI dosyasından veritabanı kimlik bilgilerini okuma
 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; 

ve bunun yerine bu atamayı kullanın

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

Erişim ihlali 0x00000000 MQLMySQL.dll okundu şeklinde hata mesajı aldığım için bu mümkün mü?

Olası bir çözüm var mı?

 
heere:

Merhaba Eugeniy,

Ayarları dosyadan okuma kodunu değiştirmenin bir yolu olup olmadığını merak ediyordum

ve bunun yerine bu atamayı kullanın

Erişim ihlali 0x00000000 MQLMySQL.dll okundu şeklinde hata mesajı aldığım için bu mümkün mü?

Olası bir çözüm var mı?

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306;
Socket   = "0"; // bu değişken int değil string olmalıdır
ClientFlag = CLIENT_MULTI_STATEMENTS; 

belki bu yardımcı olur

 
MARCOS DALCIN ALVES DINIZ:

OpenSSL sürümünü güncelledikten sonra çalıştı. Dinlediğiniz için teşekkürler.

Selam~

Ayrıca [126] hata sorusunu da aldım:


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

'cMySqlVersion' çağrısı yapılamıyor,'MQLMySQL.dll' yüklü değil

çözümlenmemiş içe aktarma işlevi çağrısı


MARCOS, OpenSSL sürümünü güncelledikten sonra bunun normal olduğunu belirtti

OpenSSL sürümünü nasıl güncelleyebilirim?

Teşekkür ederim! ~



NOT.

Çünkü bu alana aşina değilim

Tekrar sormak istiyorum.

Libraries klasörünüzde üç dll dosyası olduğunu görüyorum

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


MySQL yazılımını yükledim

Bu dll dosyaları ..\Program Files\MySQL altındaki yoldan mı kopyalandı?

Eğer öyleyse, hangi klasörden kopyalandı?


 
zboo:

Selam~

Ayrıca [126] numaralı hata sorusunu da sordum:


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

'cMySqlVersion' çağrısı yapılamıyor,'MQLMySQL.dll' yüklü değil

çözümlenmemiş içe aktarma işlevi çağrısı


MARCOS, OpenSSL sürümünü güncelledikten sonra bunun normal olduğunu belirtti

OpenSSL sürümünü nasıl güncelleyebilirim?

Teşekkür ederim! ~



PS.

Çünkü bu alana aşina değilim

Tekrar sormak istiyorum.

Libraries klasörünüzde üç dll dosyası olduğunu görüyorum

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


MySQL yazılımını yükledim

Bu dll dosyaları ..\Program Files\MySQL altındaki yoldan mı kopyalanıyor?

Eğer öyleyse, hangi klasörden kopyalandı?


Aynı durumu çözmeme yardımcı olabilecek biri var mı?

Teşekkürler~~~~

 
Eugeniy Lugovoy:

belki bu yardımcı olur

Çok teşekkürler. Sorun çözüldü.

 

@Eugeniy Lugovoy

İyi günler, Eugeniy. Makale için çok teşekkür ederim. Lütfen bana tavsiyede bulunabilir misiniz? Şu sorunla karşılaştım: EA'yı test cihazında çalıştırmazsam dll iyi çalışıyor. Test cihazında şu hatayı veriyor: "Cannot load 'C:\Users\...\MQL5\Libraries\MQLMySQL.dll' [126]". Bu, EA'yı geçmiş veriler üzerinde test etmeyi imkansız hale getirir.

Sorun bağlamı: Ticaret için giriş parametrelerini yüklemek için veritabanını kullanıyorum. Ayrıca işlem yaptıktan sonra gerekli bilgileri kaydediyorum. Hata yalnızca test cihazında.


Yapmaya çalıştığım şey:

- add #property tester_library "MQLMySQL.dll"

- dll'in yolunu bütünüyle ayrı olarak yazın

- Yüklenmeyen dosyanın klasörde olup olmadığını iki kez kontrol ettim.

Hiçbir şey yardımcı olmuyor, dosya klasörde ama yükleyemiyorum. Lütfen bana başka nereyi araştırabileceğimi söyleyin.

 

Lütfen birisi doğru bağlantı dizesini kullandığımı doğrulayabilir mi?

Ana bilgisayar için "127.0.0.1" kullanıyorum

Kullanıcı, geçiş ve veritabanını tırnak içinde kullanıyorum (3 ayrı parametre)

Daha sonra soket için NULL ve istemci bayrağı için 0 koyuyorum.

(Sistemim Win 10)


Bir ekleme işlemi gerçekleştirmeye çalıştığımda veritabanı bağlantısı yok şeklinde bir hata alıyorum