文章 "如何从 MQL5 (MQL4) 访问 MySQL 数据库" - 页 3 12345678910...30 新评论 Matvey Alekseev 2015.01.04 04:18 #21 感谢您的文章!有多少解决方案没有尝试过同样的事情无处不在,如果你不打扰请看看日志,我不能理解什么....MySQL 服务器:服务器: localhost via TCP/IP服务器版本:5.6.10协议版本:10用户:root@localhostMySQL 编码:UTF-8 Unicode (utf8 ) InnoDB 数据库,UTF8-General-CiMT5 版本 1035操作系统:Win8.1 x64 附加的文件: log_.txt 19 kb Eugeniy Lugovoy 2015.01.05 07:33 #22 您好。您使用的是 x64 操作系统,您确定使用的是 64 位版本的动态链接库吗?它们附在一篇讨论文章中(mqlmysql_for_mql5_x64.zip1264 kb)。文章中的库仅适用于 x86 操作系统。顺便问一下,存档中的测试示例能用吗?<<稍后>>.这一行令人困惑:添加的测试文件:libraries/MQLMySQL.dll。已加载 89626 字节x64 文件MQLMySQL.dll 的原始大小= 89600 字节,而不是 89626。你用的是什么杀毒软件? Ingvar Engelbrecht 2015.01.09 23:00 #23 你好。我喜欢这个概念。应该会有很大帮助但我遇到了一些问题。我使用的是 64 位 nd,我下载了它们,并开始编写测试脚本,看看它是如何工作的。但在 MySQLGetFieldAsxxxxx 中崩溃了2015.01.09 21:32:09.535 testsql(AUDNZD,H1)000000013F81347A 488BF2 mov rsi, rdx 2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813476 4883EC20 sub rsp, 0x20 2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813475 57 push rdi 2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813470 4889742418 mov [rsp+0x18],rsi 2015.01.09 21:32:09.535 testsql (AUDNZD,H1) Access violation at 0x000000013F8134B3 read to 0x0000000000000001 2015.01.09 21:32:09.535 testsql (AUDNZD,H1) +++++++++++++0 2015.01.09 21:32:09.535 testsql (AUDNZD,H1) 2 row(s) selected. 20152015.01.09 21:32:09.425 testsql (AUDNZD,H1) Connected 2015.01.09 21:31:18.135 testsql (AUDNZD,H1) x 0 ySorce:#include <FXCM\PairsInfo.mqh> #include <FXCM\MQLMySQL.mqh> //--- 输入参数 input string MySQLURL="yyyyyyyyyyyyyy"; input string MySQLDB = "forex"; input string MySQLParms = "tradeparms"; input string MySQLUser="Ingvar"; input string MySQLPW="xxxxxxxxxxxx"; input int MySQLPort=3306; input string GroupID= "Groupxxx"; PairsInfo prms; //+------------------------------------------------------------------+ //| 脚本程序启动功能| //+------------------------------------------------------------------+ void OnStart() { //--- string SQLString = ""; string Q; string C = ","; StringSetCharacter(Q,0,34); string query; int Cursor; int DB; int rows; DB = MySqlConnect(MySQLURL, MySQLUser, MySQLPW, MySQLDB, MySQLPort, "0", 0); if (DB == -1) { Print ("Connection failed! Error: "+MySqlErrorDescription); return; } Print ("Connected"); // query = "Select * From tradeparms"; // query = "Select * FROM tradeparms WHERE TradeType = 2"; query = "SELECT Pair, TradeType, SetupID FROM tradeparms WHERE TradeType = 2 AND Pair = 'USDJPY'"; Cursor = MySqlCursorOpen(DB,query); if(Cursor < 0) { Print("Cursor error"); return; } string pair= "x"; int tradetype = 0; string setupid = "y"; rows = MySqlCursorRows(Cursor); Print (rows, " row(s) selected."); for(int i=0;i<rows;i++) { if (MySqlCursorFetchRow(Cursor)) { Print("+++++++++++++" + i); pair = MySqlGetFieldAsString(Cursor, 0); << crashes here. // tradetype = MySqlGetFieldAsInt(游标,1); // setupid = MySqlGetFieldAsString(游标,2); } } Print(pair + " " + DoubleToString(tradetype,0) + " " + setupid); MySqlCursorClose(Cursor); } Discussion of article "How MQL5 酷宝书 财经日历 MQL5-RPC来自 MQL5 的远程过程调用:针对乐趣及获利的网络服务访问及 XML-RPC Ingvar Engelbrecht 2015.01.10 16:17 #24 我把我那台装有 Win32 系统的旧笔记本电脑翻出来,在上面安装了 32 位版本,并用 32 位库和包含编译了相同的源代码。运行正常。问题出在 64 位版本上 Eugeniy Lugovoy 2015.01.10 17:01 #25 ingvar_e:我把我那台装有 Win32 系统的旧笔记本电脑翻出来,在上面安装了 32 位版本,并用 32 位库和包含编译了相同的源代码。运行正常。问题出在 64 位版本上好的,我会检查一下。终端版本是什么?MT4/MT5? Ingvar Engelbrecht 2015.01.10 19:35 #26 elugovoy:好的,我会检查一下。终端版本是什么?MT4/MT5?终端 MT5 Build 1035 在 W7 64 上运行崩溃终端 MT5 Build 1035 在 XP 32 上运行正常非常感谢。我正在开发一个多币种、多方法(类似)EA,目前使用一个输入文件。为了灵活测试不同的输入文件,我正在将其转换为 MySQL Eugeniy Lugovoy 2015.01.12 01:17 #27 ingvar_e:终端 MT5 Build 1035 在 W7 64 上运行崩溃终端 MT5 Build 1035 在 XP 32 上运行正常非常感谢。我正在开发一个多币种、muli 方法(类似)的 EA,目前使用一个输入文件。为了灵活测试不同的输入文件,我正在将其转换为 MySQL。我已在 x64 操作系统、MT5 1035 版本上进行了测试。您说得完全正确。我做了一些检查,发现输入到 DLL 的数据运行正常。问题在于从 DLL函数 接收 STRING 数据类型。此外,我还测试了自己的脚本,这些脚本是用以前的 MT5 x64 版本编译的 - 运行正常。但在重新编译版本 1035 后,使用相同 DLL 的相同脚本却出现了此类错误。最后,我认为问题不在于 DLL 或 MQLMySQL 项目,而在于 MT5 x64 编译器。我已就此问题向服务台提交了案例。谢谢、尤金 Eugeniy Lugovoy 2015.01.12 01:34 #28 ingvar_e:终端 MT5 Build 1035 在 W7 64 上运行崩溃终端 MT5 Build 1035 在 XP 32 上运行正常非常感谢。我正在开发一个多币种、muli 方法(类似)的 EA,目前使用一个输入文件。为了灵活测试不同的输入文件,我正在将其转换为 MySQL。仅用于测试,您可以使用发布包中包含的我的脚本。更改 INI 文件中的数据库凭据,然后运行脚本。尝试重新编译并再次运行。您会发现,第一次运行时,它们运行正常,但重新编译后,它们会出现与您相同的错误。问题出现在 MT5 x64 b1035 终端/编译器中 Ingvar Engelbrecht 2015.01.12 11:45 #29 elugovoy:您可以使用我的脚本进行测试,脚本包含在发布软件包中。更改 INI 文件中的数据库凭据,然后运行脚本。尝试重新编译并再次运行。您会发现,第一次运行时它们运行正常,但重新编译后它们会出现与您相同的错误。问题出现在 MT5 x64 b1035 终端/编译器中>问题出在 MT5 x64 b1035 中所以我们被卡住了?我的旧 32 位笔记本电脑今天死机了。完全死机。我想知道是否可以在 64 位机器上安装 32 位 windows,这是否真的有帮助。或者在 Windows 7 64 位机器上安装 32 位 MT5/MQL5稍后:找到这个 尝试一下。要在 64 位操作系统中安装 32 位版本,应使用 /32 密钥启动安装程序。例如 c:\>mt5setup.exe /32。http://www.metatrader5.com/en/terminal/help/startworking/installation Discussion of article "How 开发人员!你甚至会测试你所创造的东西吗? 如何开始使用Metatrader 5 Ingvar Engelbrecht 2015.01.12 17:18 #30 ingvar_e:>问题出现在 MT5 x64 b1035 中我们被卡住了?我的旧 32 位笔记本电脑今天死机了。完全死机了。我想知道是否可以在 64 位机器上安装 32 位 Windows,这样是否真的有帮助。或者在 Windows 7 64 位机器上安装 32 位 MT5/MQL5稍后:找到这个 尝试一下。要在 64 位操作系统中安装 32 位版本,应使用 /32 密钥启动安装程序。例如 c:\>mt5setup.exe /32。,SYMBOL_TRADE_TICK_VALUE) 返回 0;也许在 Windows 64 位机器上运行 32 位 MT5 不是个好主意。还有其他故障迹象。下一次尝试是在我的 64 位计算机上安装 32 位操作系统。这些弯路总是让你偏离主航线很远:-(看来我不得不放弃这个工具,转而使用 MySQL。安装新的 Windows XP 太麻烦了,而且没有 W7 密钥。 12345678910...30 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
感谢您的文章!有多少解决方案没有尝试过同样的事情无处不在,如果你不打扰请看看日志,我不能理解什么....
MySQL 服务器:
MT5 版本 1035
操作系统:Win8.1 x64
您好。
您使用的是 x64 操作系统,您确定使用的是 64 位版本的动态链接库吗?
它们附在一篇讨论文章中(mqlmysql_for_mql5_x64.zip1264 kb)。
文章中的库仅适用于 x86 操作系统。
顺便问一下,存档中的测试示例能用吗?
<<稍后>>.
这一行令人困惑:添加的测试文件:libraries/MQLMySQL.dll。已加载 89626 字节
x64 文件MQLMySQL.dll 的原始大小= 89600 字节,而不是 89626。
你用的是什么杀毒软件?
你好。
我喜欢这个概念。应该会有很大帮助
但我遇到了一些问题。我使用的是 64 位 nd,我下载了它们,并开始编写测试脚本,看看它是如何工作的。
但在 MySQLGetFieldAsxxxxx 中崩溃了
2015.01.09 21:32:09.535 testsql(AUDNZD,H1)000000013F81347A 488BF2 mov rsi, rdx
2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813476 4883EC20 sub rsp, 0x20
2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813475 57 push rdi
2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813470 4889742418 mov [rsp+0x18],rsi
2015.01.09 21:32:09.535 testsql (AUDNZD,H1) Access violation at 0x000000013F8134B3 read to 0x0000000000000001
2015.01.09 21:32:09.535 testsql (AUDNZD,H1) +++++++++++++0
2015.01.09 21:32:09.535 testsql (AUDNZD,H1) 2 row(s) selected.
20152015.01.09 21:32:09.425 testsql (AUDNZD,H1) Connected
2015.01.09 21:31:18.135 testsql (AUDNZD,H1) x 0 y
Sorce:
我把我那台装有 Win32 系统的旧笔记本电脑翻出来,在上面安装了 32 位版本,并用 32 位库和包含编译了相同的源代码。
运行正常。问题出在 64 位版本上
我把我那台装有 Win32 系统的旧笔记本电脑翻出来,在上面安装了 32 位版本,并用 32 位库和包含编译了相同的源代码。
运行正常。问题出在 64 位版本上
好的,我会检查一下。
终端版本是什么?MT4/MT5?
好的,我会检查一下。
终端版本是什么?MT4/MT5?
终端 MT5 Build 1035 在 W7 64 上运行崩溃
终端 MT5 Build 1035 在 XP 32 上运行正常
非常感谢。我正在开发一个多币种、多方法(类似)EA,目前使用一个输入文件。为了灵活测试不同的输入文件,我正在将其转换为 MySQL
终端 MT5 Build 1035 在 W7 64 上运行崩溃
终端 MT5 Build 1035 在 XP 32 上运行正常
非常感谢。我正在开发一个多币种、muli 方法(类似)的 EA,目前使用一个输入文件。为了灵活测试不同的输入文件,我正在将其转换为 MySQL。
我已在 x64 操作系统、MT5 1035 版本上进行了测试。您说得完全正确。
我做了一些检查,发现输入到 DLL 的数据运行正常。问题在于从 DLL函数 接收 STRING 数据类型。
此外,我还测试了自己的脚本,这些脚本是用以前的 MT5 x64 版本编译的 - 运行正常。
但在重新编译版本 1035 后,使用相同 DLL 的相同脚本却出现了此类错误。
最后,我认为问题不在于 DLL 或 MQLMySQL 项目,而在于 MT5 x64 编译器。我已就此问题向服务台提交了案例。
谢谢、
尤金
终端 MT5 Build 1035 在 W7 64 上运行崩溃
终端 MT5 Build 1035 在 XP 32 上运行正常
非常感谢。我正在开发一个多币种、muli 方法(类似)的 EA,目前使用一个输入文件。为了灵活测试不同的输入文件,我正在将其转换为 MySQL。
仅用于测试,您可以使用发布包中包含的我的脚本。
更改 INI 文件中的数据库凭据,然后运行脚本。
尝试重新编译并再次运行。
您会发现,第一次运行时,它们运行正常,但重新编译后,它们会出现与您相同的错误。
问题出现在 MT5 x64 b1035 终端/编译器中
您可以使用我的脚本进行测试,脚本包含在发布软件包中。
更改 INI 文件中的数据库凭据,然后运行脚本。
尝试重新编译并再次运行。
您会发现,第一次运行时它们运行正常,但重新编译后它们会出现与您相同的错误。
问题出现在 MT5 x64 b1035 终端/编译器中
>问题出在 MT5 x64 b1035 中
所以我们被卡住了?
我的旧 32 位笔记本电脑今天死机了。完全死机。
我想知道是否可以在 64 位机器上安装 32 位 windows,这是否真的有帮助。或者在 Windows 7 64 位机器上安装 32 位 MT5/MQL5
稍后:
找到这个 尝试一下。
>问题出现在 MT5 x64 b1035 中
我们被卡住了?
我的旧 32 位笔记本电脑今天死机了。完全死机了。
我想知道是否可以在 64 位机器上安装 32 位 Windows,这样是否真的有帮助。或者在 Windows 7 64 位机器上安装 32 位 MT5/MQL5
稍后:
找到这个 尝试一下。
返回 0;
也许在 Windows 64 位机器上运行 32 位 MT5 不是个好主意。还有其他故障迹象。下一次尝试是在我的 64 位计算机上安装 32 位操作系统。
这些弯路总是让你偏离主航线很远:-(
看来我不得不放弃这个工具,转而使用 MySQL。安装新的 Windows XP 太麻烦了,而且没有 W7 密钥。