文章 "如何从 MQL5 (MQL4) 访问 MySQL 数据库" - 页 19 1...121314151617181920212223242526...30 新评论 Amy Liu 2018.09.22 09:37 #181 感谢作者,我在本地修改了这个项目,从而可以使用 MySQL 数据库代码页 UTF8 中存储的非英语单词。 Eugeniy Lugovoy 2018.10.24 17:36 #182 Amy Liu: 感谢作者,我在本地修改了这个项目,这样我就可以使用 MySQL 数据库代码页 UTF8 中存储的非英语单词了。嗨,艾米。很好,我没有时间自己做。如果你不介意的话,能否与社区分享一下源代码? Eugeniy Lugovoy 2018.10.24 17:42 #183 大家好! 不幸的是,我没有时间支持这个项目,也没有时间在社区中度过,所以请原谅我没有回答的问题和我的沉默。 但我在这里看到了一些有经验的人,他们可以帮助其他人,这真的很棒。 感谢大家使用我的程序库,扩展其功能 并获得自己的经验。 祝大家项目顺利! 最诚挚的问候 尤金 Eugeniy Lugovoy 2018.10.24 17:52 #184 dragossh:你好,尤金尼-卢戈沃伊、首先,感谢您抽出时间来做这个项目。我一直在寻找如何将交易账户中的所有开仓/平仓交易导入/更新到 MySQL 表中(如果可能的话,实时导入/更新)的方法。非常感谢。德拉戈斯你好,Dragos! 当然,您可以使用该库创建 EA,将数据插入 Mysql 数据库并保持更新(接近实时更新)。 请注意,MT4/5 中的平仓订单只有在历史选项卡中列出时,才能以编程方式使用。因此,如果在 "历史记录 "中设置 "最近 3 天 "过滤器,则只能访问在此期间处理的交易。 这并不依赖于这个库,它只是 MQL-MT4 的基础结构。 谢谢、 尤金 do6po_v_temu 2018.11.20 21:55 #185 读取"\MQL4\libraries\MQLMySQL.dll "中 0x000003B0 的访问违规行为你能告诉我去哪里查吗? 操作系统 win 10, mariadb 5.5.59 George Oakes 2018.12.22 05:49 #186 尤金、 又是了不起的工作,因为这很容易就能实现。 我很好奇,您或其他任何人是否尝试过让它在策略测试仪 上运行?我已经在实时环境中将脚本演进到了一个独立服务器上,一切正常,但在回溯测试环境中却没有任何进展。 br 乔治 Amy Liu 2019.01.18 14:03 #187 Eugeniy Lugovoy:嗨,艾米。很好,我没有时间自己做。那么,如果您不介意的话,能和我们分享一下资料来源吗?你好,尤金尼、 很抱歉这么晚才回复您。以下是我对您的代码所做的修改。我只是修改了一个函数 cMySqlGetRowField,使其使用 MultiByteToWideChar。为便于比较,原始代码已作注释。 // 返回字段值的字符串表示 // 应在 MySqlCursorFetchRow() 之后调用 // pCursorID - CURSOR IDENTIFIER // pField - SELECT 列表中字段的编号(从 0 开始) - 0,1,2 等等。 MT4_EXPFUNC wchar_t* __stdcall cMySqlGetRowField(int pCursorID, unsigned int pField) { SCOPE_LOCK_MUTEX(g_mutex.get()); ClearCursorErrors(pCursorID); if ((pCursorID >= 0) && (pCursorID < MAX_CURSORS) && (Cursors[pCursorID].Id!=-1)) { if ((pField >= 0) && (pField < mysql_num_fields(Cursors[pCursorID].RecordSet))) { // 预算-缓冲区中宽字节的长度 int unicodeLen = MultiByteToWideChar(CP_UTF8, 0, Cursors[pCursorID].CurrentRow[pField], -1, nullptr, 0); if (unicodeLen<=1024) { // 开始向缓冲区转换字节 MultiByteToWideChar(CP_UTF8, 0, Cursors[pCursorID].CurrentRow[pField], -1, Cursors[pCursorID].Value, unicodeLen); return(Cursors[pCursorID].Value); } //sprintf_s(Cursors[pCursorID].Value, "%s", Cursors[pCursorID].CurrentRow[pField]); //swprintf(Cursors[pCursorID].Value, 1024, L"%S", Cursors[pCursorID].CurrentRow[pField]); //return (Cursors[pCursorID].Value); } else { Cursors[pCursorID].CursorErrorNumber = -4; swprintf(Cursors[pCursorID].CursorErrorDescription, 32, L"Wrong number of field.\x00"); } } else { CursorErrorNumber = -5; swprintf(CursorErrorDescription, 32, L"Wrong CURSOR identifier.\x00"); } return (WideNull); } Dmitry Melnichenko 2019.02.06 19:01 #188 同事们好,我有一个问题: 当 Expert Advisor 在一个终端上运行时,没有任何问题,但当我在另一个终端上运行相同的 Expert Advisor 时,却不断写入以下错误: Cursor #0 closing error:-5: Wrong CURSOR identifier. 问题出在哪里? Maxim Kuznetsov 2019.02.06 19:15 #189 Dmitry Melnichenko:同事们好,我有个问题:当 Expert Advisor 在一个终端上运行时,没有任何问题,但当我在另一个终端上运行同一个 Expert Advisor 时,却不断写入这样的错误:Cursor #0 closing error:-5: Wrong CURSOR identifier.问题出在哪里?尝试使用不同的凭据进行连接。即使用 MySQL 的其他登录名/密码。也就是说,创建另一个具有适当数据库权限的登录名。 并在事务模式下工作。 Dmitry Melnichenko 2019.02.06 22:31 #190 Maxim Kuznetsov:尝试用不同的凭据连接。也就是说,使用 MySQL 的其他登录名/密码。也就是说,在该处另设一个具有适当数据库权限的登录名。并在事务模式下工作。 我创建了一个新用户,尝试用他的凭据进行连接,但无济于事! 1...121314151617181920212223242526...30 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
感谢作者,我在本地修改了这个项目,这样我就可以使用 MySQL 数据库代码页 UTF8 中存储的非英语单词了。
嗨,艾米。很好,我没有时间自己做。如果你不介意的话,能否与社区分享一下源代码?
大家好!
不幸的是,我没有时间支持这个项目,也没有时间在社区中度过,所以请原谅我没有回答的问题和我的沉默。
但我在这里看到了一些有经验的人,他们可以帮助其他人,这真的很棒。
感谢大家使用我的程序库,扩展其功能 并获得自己的经验。
祝大家项目顺利!
最诚挚的问候
尤金
你好,尤金尼-卢戈沃伊、
首先,感谢您抽出时间来做这个项目。
我一直在寻找如何将交易账户中的所有开仓/平仓交易导入/更新到 MySQL 表中(如果可能的话,实时导入/更新)的方法。
非常感谢。
德拉戈斯
你好,Dragos!
当然,您可以使用该库创建 EA,将数据插入 Mysql 数据库并保持更新(接近实时更新)。
请注意,MT4/5 中的平仓订单只有在历史选项卡中列出时,才能以编程方式使用。因此,如果在 "历史记录 "中设置 "最近 3 天 "过滤器,则只能访问在此期间处理的交易。
这并不依赖于这个库,它只是 MQL-MT4 的基础结构。
谢谢、
尤金
读取"\MQL4\libraries\MQLMySQL.dll "中 0x000003B0 的访问违规行为
你能告诉我去哪里查吗?
操作系统 win 10, mariadb 5.5.59尤金、
又是了不起的工作,因为这很容易就能实现。
我很好奇,您或其他任何人是否尝试过让它在策略测试仪 上运行?我已经在实时环境中将脚本演进到了一个独立服务器上,一切正常,但在回溯测试环境中却没有任何进展。
br 乔治
嗨,艾米。很好,我没有时间自己做。那么,如果您不介意的话,能和我们分享一下资料来源吗?
你好,尤金尼、
很抱歉这么晚才回复您。以下是我对您的代码所做的修改。我只是修改了一个函数 cMySqlGetRowField,使其使用 MultiByteToWideChar。为便于比较,原始代码已作注释。
同事们好,我有一个问题:
当 Expert Advisor 在一个终端上运行时,没有任何问题,但当我在另一个终端上运行相同的 Expert Advisor 时,却不断写入以下错误:
Cursor #0 closing error:-5: Wrong CURSOR identifier.
问题出在哪里?
同事们好,我有个问题:
当 Expert Advisor 在一个终端上运行时,没有任何问题,但当我在另一个终端上运行同一个 Expert Advisor 时,却不断写入这样的错误:
Cursor #0 closing error:-5: Wrong CURSOR identifier.
问题出在哪里?
尝试使用不同的凭据进行连接。即使用 MySQL 的其他登录名/密码。也就是说,创建另一个具有适当数据库权限的登录名。
并在事务模式下工作。
尝试用不同的凭据连接。也就是说,使用 MySQL 的其他登录名/密码。也就是说,在该处另设一个具有适当数据库权限的登录名。
并在事务模式下工作。
我创建了一个新用户,尝试用他的凭据进行连接,但无济于事!