"MQL5'ten (MQL4) MySQL Veritabanına Nasıl Erişilir" makalesi için tartışma - sayfa 9
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
MT4 yapı 890 x32 az önce kontrol edildi. Her şey çalışıyor.
Test komut dosyalarını çalıştırma günlüğü:
Beyler, lütfen açıklayın:
1. Hangi işlemde"Erişim ihlali okundu" veriyor? ?
2. MySQL-001 betiğini çalıştırırken, Uzmanlar sekmesinde MQLMySQL'in hangi sürümü gösterilir? şu şekilde olmalıdır: MQLMySQL v2.2 x32 Copyright © 2014, FxCodex Laboratory
3. MySQL veritabanının hangi sürümü?
4. MySQL yerel olarak mı yoksa uzak bir ana bilgisayarda mı kullanılıyor?
5. Terminali hangi işletim sistemi altında çalıştırıyorsunuz?
Hatayı yeniden üretemediğim için lütfen kontrol edin ve raporlayın.
Benzer bir ortam oluşturup test edeceğim.
MT4 (950) kullanıyorum. Dosyaları makaleye ekli arşivden aldım. En son sürüm olmadığını doğru anladım mı?: MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratory.
Yapılandırma dosyasından veri okumuyor.
MT4 (950) kullanıyorum. Dosyaları makaleye ekli arşivden aldım. En son sürüm olmadığını doğru anladım mı?: MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratory
Yapılandırma dosyasından veri okumaz.
Evet, v2.0 eski. Makalenin tartışma bölümünde daha yeni sürümleri zaten yayınlamıştım.
Şimdi ekleyeceğim.
MQLMySQL v2.2 - x64 ve x86 için DLL proje kaynakları
Bundan bir şey deneyin. En son sürüm gibi görünüyor.
Günlüğünüzden gördüğüm hataya göre: 0 11:09:37.742 MySQL-002 EURUSD,H1: Tablo `table` oluşturulamıyor.
mysql veritabanının anahtar kelimesi olan ve tablo adı olarak kullanılamayan "table" adını kullanıyorsunuz, sadece çalışıp çalışmadığını kontrol etmek için örneğin "table1" olarak değiştirmeyi deneyin.
veya veritabanı seçilmemiş veya ayarlanmamış olabilir. bağlantıdan hemen sonra "USE database_name" komutunu çalıştırabilirsiniz, burada database_name veritabanınızın adıdır.
örneğin benim veritabanım "mysql" ise:
DB = MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);
if (DB ==-1) { Print ("Connection failed! Error: "+MySqlErrorDescription); }else { Print ("Connected! DBID#",DB);}
MySqlExecute(DB, "USE mysql");
Tablo adı ve MySqlExecute(DB, "USE mt4") komutu için önerilerinizi uyguladım ancak yine de hata mesajı alıyorum:
0 12:51:40.534 Script MySQL-002new EURUSD,M1: başarıyla yüklendi
0 12:51:40.549 MySQL-002new EURUSD,M1: başlatıldı
0 12:51:40.549 MySQL-002new EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratory
0 12:51:40.549 MySQL-002new EURUSD,M1: Host: , Kullanıcı: , Veritabanı:
0 12:51:40.549 MySQL-002new EURUSD,M1: Bağlanıyor...
0 12:51:40.565 MySQL-002new EURUSD,M1: Bağlandı! DBID#0
0 12:51:40.565 MySQL-002new EURUSD,M1: `test_table` tablosu oluşturulamıyor. Hata oluştu: Hiçbir taban oluşturulamıyor
0 12:51:40.565 MySQL-002new EURUSD,M1: Bağlantı kesildi. Komut dosyası tamamlandı!
0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 0
0 12:51:40.565 Script MySQL-002new EURUSD,M1: kaldırıldı
Merhaba Eugeniy Lugovoy,
Faydalı projeniz için çok teşekkürler.
Bir tablodan yaklaşık 3.000 karakterlik bir string alanı okumaya çalışıyorum, "MySqlGetFieldAsString" i şu şekilde kullandım:
if (Cursor >= 0)
{
Rows = MySqlCursorRows(Cursor);
for (int i=0; i<Satırlar; i++)
eğer (MySqlCursorFetchRow(Cursor))
{
Get_Setting = MySqlGetFieldAsString(Cursor, 4);
}
.....
Ancak sorun şu ki Get_String bana yalnızca 1025 karakter döndürüyor,
Bu alanı tamamen okumam gerekiyor.
Bunu çözmeme yardım edebilir misiniz?
Saygılarımla
Merhaba Eugeniy Lugovoy,
Faydalı projeniz için çok teşekkürler.
Bir tablodan yaklaşık 3.000 karakterlik bir string alanı okumaya çalışıyorum, "MySqlGetFieldAsString" i şu şekilde kullandım:
if (Cursor >= 0)
{
Rows = MySqlCursorRows(Cursor);
for (int i=0; i<Satırlar; i++)
eğer (MySqlCursorFetchRow(Cursor))
{
Get_Setting = MySqlGetFieldAsString(Cursor, 4);
}
.....
Ancak sorun şu ki Get_String bana yalnızca 1025 karakter döndürüyor,
Bu alanı tamamen okumam gerekiyor.
Bunu çözmeme yardım edebilir misiniz?
Saygılarımla
Tablo adı ve MySqlExecute(DB, "USE mt4") komutu için önerilerinizi uyguladım ancak yine de hata mesajı alıyorum:
0 12:51:40.534 Script MySQL-002new EURUSD,M1: başarıyla yüklendi
0 12:51:40.549 MySQL-002new EURUSD,M1: başlatıldı
0 12:51:40.549 MySQL-002new EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratory
0 12:51:40.549 MySQL-002new EURUSD,M1: Host: , Kullanıcı: , Veritabanı:
0 12:51:40.549 MySQL-002new EURUSD,M1: Bağlanıyor...
0 12:51:40.565 MySQL-002new EURUSD,M1: Bağlandı! DBID#0
0 12:51:40.565 MySQL-002new EURUSD,M1: `test_table` tablosu oluşturulamıyor. Hata oluştu: Hiçbir taban oluşturulamıyor
0 12:51:40.565 MySQL-002new EURUSD,M1: Bağlantı kesildi. Komut dosyası tamamlandı!
0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 0
0 12:51:40.565 Script MySQL-002new EURUSD,M1: kaldırıldı
Mükemmel!
MQL4 için veri oluşturmak üzere MQL5 kullanıyorum.
Sorgu komutunda tablename etrafındaki tek tırnak işaretlerini kaldırmam gerekmesi dışında her şey güzel çalıştı
Sorgu ="SELECT Symbol,Composite,Pattern FROM summarytable";
tamam çalışıyor
Mükemmel!
MQL4 için veri oluşturmak üzere MQL5 kullanıyorum.
Sorgu komutunda tablename etrafındaki tek tırnak işaretlerini kaldırmam gerekmesi dışında her şey güzel çalıştı
Sorgu ="SELECT Symbol,Composite,Pattern FROM summarytable";
tamam çalışıyor
Evet, tabloları büyük/küçük harflerle (mysql büyük/küçük harfe duyarlıdır) ve özel sembollerle adlandırmayı planlamıyorsanız tırnak işareti olmadan kullanmak mümkündür. Bu arada, tek tırnak sembolü "'" değil, "`"
Yani sorgunuz şöyle de olabilir: Query ="SELECT `Symbol`,`Composite`,`Pattern` FROM `summarytable`";
eğer sütunlara sembol veya SYMBOL değil de Symbol adını vermek istiyorsanız
Merhaba Eugeniy,
Modülünüz için teşekkürler, çok yardımcı oldu. Alan Adı almak için fonksiyon eklemeye yardımcı olabilir misiniz? veya VC++'a nasıl ekleyebilirim?
Nasılsınız!
sistem win10 64x, veritabanına bağlanılamıyor, bana yardımcı olabilir misiniz?