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

 
Dmitry Melnichenko:

Yeni bir kullanıcı oluşturdum, onun bilgileriyle bağlanmayı denedim, işe yaramadı!

o zaman bunun MySQL veya veritabanı organizasyonu ile ilgili bir sorun olması pek olası değil, yani ya EA/komut dosyasında ya da arayüz kütüphanesinde bir hata olduğu açık.

Bana bunun en aza indirildiği bir örnek verebilir misiniz? Böylece kısa bir kod gösterebilir ve sorunlarını burada bir forum başlığında bulabilirim.

 
Maxim Kuznetsov:

o zaman MySQL veya veritabanı organizasyonu ile ilgili bir sorun olması pek olası değildir, yani EA/komut dosyasında veya arayüz kütüphanesinde bir hata olduğu açıktır.

Bunun en aza indirildiği bir örnek verebilir misiniz? Böylece kısa bir kod gösterebilir ve ardından buradaki bir forum başlığında sorunlarını öğrenebilirsiniz

if(connect >= 0)
   {
      string sql = SelectNewOrdersSQL();
      
      int Cursor1 = MySqlCursorOpen(connect, sql);
      
      if(Cursor1 >= 0)
      {
         int Rows = MySqlCursorRows(Cursor1);
         
         for(int i = 0; i < Rows; i++)
         {
            ResetLastError();
            
            if(MySqlCursorFetchRow(Cursor1))
            {
               int ticket = MySqlGetFieldAsInt(Cursor1, 0);
               string s = MySqlGetFieldAsString(Cursor1, 1);
               int order_type = MySqlGetFieldAsInt(Cursor1, 2);
               double lot = MySqlGetFieldAsDouble(Cursor1, 3);
               double open_price = MySqlGetFieldAsDouble(Cursor1, 4);
               
               string symbol = GetSymbol(s);
               
               Print(ticket);
               
               int digits = (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS);
               int open_ticket = -1;
               if((open_ticket = OrderSend(symbol, order_type, NormalizeDouble(lot, 2), NormalizeDouble(open_price, digits), 150, 0, 0, (string)ticket)) <= 0)
               {
                  Print(symbol, ": pozisyon açılamadı. Hata ", GetLastError());
               }
               else
               {
                  MySqlExecute(connect, SqlModifyClient(ticket, open_ticket));
               }
            }
         }
         
         MySqlCursorClose(Cursor1);
      }
   }
string SelectNewOrdersSQL()
{
   string res = "SELECT Ticket, Symbol, OrderType, Lot, OpenPrice, StopLoss, TakeProfit ";
   res += "FROM orders (WHERE Client2 = 0 AND HistoryMaster = 0 AND Account = " + (string)MasterAccount;
   res += " AND Magic = " + (string)MasterMagic + ")";
   
   return res;
}
 
MQL4 veya 5'iniz var mı?
 
Maxim Kuznetsov:
MQL4 veya 5'iniz var mı???
MQL4
 
Dmitry Melnichenko:
MQL4
ve hata yalnızca imleci kapatırken ortaya çıkıyor, yani tüm kayıtlar normal şekilde çekiliyor, ancak sonunda bu saçmalık ortaya çıkıyor?
 
Maxim Kuznetsov:
ve hata sadece imleci kapatırken, yani tüm kayıtlar normal olarak çekiliyor, ancak sonunda bu saçmalık ortaya çıkıyor?
Evet, seçilen satırların sayısını yazıyor (Yazdır'da yazdırılıyor), ancak imleci kapatırken bu hatayı yazıyor.
 
Amy Liu:

Merhaba Eugeniy,

Geç yanıt için özür dilerim. İşte kodunuzla yaptığım şey.MultiByteToWideChar kullanmak için sadece bir cMySqlGetRowField işlevini değiştirdim. Orijinal kod karşılaştırma için yorumlanmıştır.

Teşekkürler çocuklar harikasınız. Kodunuzu denedim. widechar başlığını eklemeyi unutmayın, yoksa çalışmaz.

#include <wchar.h>



 

Merhaba hocam, mt4 yazılımı kullanıyorum, local win10 sistemde ea kullanarak mysql e bağlanmak normal olarak kullanılabiliyor, fakat win2008 sunucuya koyunca çalışmıyor, '... \libraries\MQLMySQL.dll' yüklü değil... ...' hatası veriyor.

Mt4, mt5, 64bit, 32bit dahil tüm sürümleri indirdim ama hala çalışmıyor. Ne yapmam gerekiyor?

 

Merhaba Kütüphaneler klasörüne dll yükledim ancak bir hata bildiriyor " "Cnnot call 'cMySqlVersion', '....\Libraries\MQLMySQL.dll' yüklü değil

Bu nasıl mümkün olabilir?

 
GreenKobra:

Merhaba Kütüphaneler klasörüne dll yükledim ancak bir hata bildiriyor " "Cnnot call 'cMySqlVersion', '....\Libraries\MQLMySQL.dll' yüklü değil

Bu nasıl mümkün olabilir?

Ben de seninle aynı sorunu yaşıyorum.

MT5'i Windows 10 - 64 bit ile kullanma.