文章 "如何从 MQL5 (MQL4) 访问 MySQL 数据库" - 页 20 1...131415161718192021222324252627...30 新评论 Maxim Kuznetsov 2019.02.06 22:44 #191 Dmitry Melnichenko:我创建了一个新用户,尝试用他的信息进行连接,但无济于事!那么这不太可能是 MySQL 或数据库组织的问题,也就是说,EA/脚本或接口库中显然存在某些错误。 您能给我一个能最大限度减少这种情况的例子吗? 这样我就可以演示一个简短的代码,并在论坛主题中找出它的问题所在。 Dmitry Melnichenko 2019.02.06 22:52 #192 Maxim Kuznetsov:那么不太可能是 MySQL 或数据库组织的问题,也就是说,很明显是 EA/脚本或接口库中的某个错误。您能举个例子来说明如何尽量减少这种情况吗? 这样您就可以演示一段简短的代码,然后在这里的论坛主题中找出问题所在。 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, ": 开仓失败。错误", 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; } Maxim Kuznetsov 2019.02.06 22:57 #193 您使用的是 MQL4 还是 5? Dmitry Melnichenko 2019.02.06 22:59 #194 Maxim Kuznetsov: 您使用的是 MQL4 还是 5? MQL4 Maxim Kuznetsov 2019.02.06 23:06 #195 Dmitry Melnichenko: MQL4 只有在关闭游标时才会出错,也就是说,所有记录都是正常调出的,但最后却出现了这样的错误? Dmitry Melnichenko 2019.02.06 23:08 #196 Maxim Kuznetsov: 只有在关闭游标时才会出错,也就是说,所有记录都是正常调出的,但最后却出现了这样的错误? 是的,它写入了所选行的数量(打印),但在关闭游标时却写入了这个错误。 Ma Yuliang 2019.02.12 13:44 #197 Amy Liu:你好,尤金尼、抱歉回复晚了。以下是我对您的代码所做的修改。我只是修改了一个函数 cMySqlGetRowField,使其使用 MultiByteToWideChar。为便于比较,原始代码已作注释。谢谢你们的帮助。我尝试了您的代码,但不要忘了包括宽字符头,否则将无法工作。 #include <wchar.h> dasdaf2020 2019.02.15 09:46 #198 老师你好,我用的是mt4软件,本地的win10系统使用ea连接mysql都可以正常使用,但是放到win2008服务器就不行,一直提示'..\libraries\MQLMySQL.dll' is not loaded...这样的错误, 我在上面把各个版本包括mt4,mt5,64位,32位的都下载了,但都还是用不了。请教一下该怎么办? GreenKobra 2019.03.14 16:48 #199 你好,我已经在库文件夹中加载了 dll,但它却报错 " "Cnnot call 'cMySqlVersion', '....\Libraries\MQLMySQL.dll' is not loaded"。 这怎么可能? Jose Antonio 2019.03.25 16:36 #200 GreenKobra:你好,我已经在库文件夹中加载了 dll,但它报告了一个错误 " "Cnnot call 'cMySqlVersion', '....\Libraries\MQLMySQL.dll' is not loaded这怎么可能?我遇到了和你一样的问题。 使用 MT5,Windows 10 - 64 位。 1...131415161718192021222324252627...30 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我创建了一个新用户,尝试用他的信息进行连接,但无济于事!
那么这不太可能是 MySQL 或数据库组织的问题,也就是说,EA/脚本或接口库中显然存在某些错误。
您能给我一个能最大限度减少这种情况的例子吗? 这样我就可以演示一个简短的代码,并在论坛主题中找出它的问题所在。
那么不太可能是 MySQL 或数据库组织的问题,也就是说,很明显是 EA/脚本或接口库中的某个错误。
您能举个例子来说明如何尽量减少这种情况吗? 这样您就可以演示一段简短的代码,然后在这里的论坛主题中找出问题所在。
您使用的是 MQL4 还是 5?
MQL4
只有在关闭游标时才会出错,也就是说,所有记录都是正常调出的,但最后却出现了这样的错误?
你好,尤金尼、
抱歉回复晚了。以下是我对您的代码所做的修改。我只是修改了一个函数 cMySqlGetRowField,使其使用 MultiByteToWideChar。为便于比较,原始代码已作注释。
谢谢你们的帮助。我尝试了您的代码,但不要忘了包括宽字符头,否则将无法工作。
#include <wchar.h>
老师你好,我用的是mt4软件,本地的win10系统使用ea连接mysql都可以正常使用,但是放到win2008服务器就不行,一直提示'..\libraries\MQLMySQL.dll' is not loaded...这样的错误,
我在上面把各个版本包括mt4,mt5,64位,32位的都下载了,但都还是用不了。请教一下该怎么办?
你好,我已经在库文件夹中加载了 dll,但它却报错 " "Cnnot call 'cMySqlVersion', '....\Libraries\MQLMySQL.dll' is not loaded"。
这怎么可能?
你好,我已经在库文件夹中加载了 dll,但它报告了一个错误 " "Cnnot call 'cMySqlVersion', '....\Libraries\MQLMySQL.dll' is not loaded
这怎么可能?
我遇到了和你一样的问题。
使用 MT5,Windows 10 - 64 位。