文章 "如何从 MQL5 (MQL4) 访问 MySQL 数据库" - 页 14 1...789101112131415161718192021...30 新评论 MetaQuotes 2016.10.20 16:30 #131 Pavel Kolchin:这意味着什么?当执行我这一行的代码时。if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);}res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);在 MQL 中,所有字符串都是 Unicode 字符串,而你传递的是 ANSI 字符串。这就是 dllka 崩溃的原因。 Pavel Kolchin 2016.10.20 16:55 #132 MetaQuotes Software Corp.:在 MQL 中,所有字符串都是 Unicode 字符串,而您传递的是 ANSI 字符串。这就是 dll 崩溃的原因。如果我删除条件,一切都能正常工作,总的来说,你可以用不同的方法重做,我只是不明白为什么会崩溃。//if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);//}res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account); Eugeniy Lugovoy 2016.10.28 01:12 #133 MetaQuotes Software Corp.:在 MQL 中,所有字符串都是 Unicode 字符串,而您传递的是 ANSI 字符串。这就是 dll 崩溃的原因。 在 DLL 中进行重新编码 Eugeniy Lugovoy 2016.10.28 01:15 #134 Pavel Kolchin:如果我删除条件,一切正常,一般来说,你可以用不同的方法重做,只是不明白为什么会崩溃。//if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);//}res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);这段代码之前有连接吗?在条件之前,DB 等于多少?如果 DB 变量没有初始化,可能就是因为这个原因。在最后一个示例中,您正常打开了与数据库的连接,因此游标也能正常工作。 DLL 附带的脚本是否有效? Anton Gaisin 2016.11.09 12:40 #135 尤金,你好!感谢您提供的脚本。我决定在我的项目 中使用它。但在测试你附在项目中的脚本时,我发现了一个不清楚的错误。ReadIni 不工作。也许我做错了什么,但它总是从 ini 返回空值。原因可能是什么?我怀疑它没有在指定路径上找到文件,但我检查了不同的目录,一切都正确无误。如果我直接在代码中为连接指定数据,则一切正常。 我使用的是 mt4。 Anton Gaisin 2016.11.12 21:40 #136 还有一个问题:俄文文本插入到了 karakaziaby 中。当然,我知道 dll 正在重新编码,但我的数据库是 UTF-8。怎样才能插入可读的俄文文本? Eugeniy Lugovoy 2016.11.13 11:43 #137 Anton Gaisin:尤金,你好!感谢您提供的脚本。我决定在我的项目中使用它。但在测试你附在项目中的脚本阶段,我发现了一个不清楚的错误。ReadIni 不工作。也许我做错了什么,但它总是从 ini 返回空值。原因可能是什么?我怀疑它没有在指定路径上找到文件,但我检查了不同的目录,一切都正确无误。如果我直接在代码中为连接指定数据,则一切正常。 我使用的是 mt4。你应该检查路径...UAC 很可能会有影响。你设置的 INI 路径是什么?终端目录还是数据? Eugeniy Lugovoy 2016.11.13 11:44 #138 Anton Gaisin: 还有一个问题:俄文文本插入到了 karakaziaby 中。当然,我知道 dll 正在重新编码,但我的数据库是 UTF-8。我应该怎么做才能插入可读的俄文文本呢......?是的,ASCII 转换正在进行中,中国同事对此也有评论。一旦我有时间,我会尽快解决这个问题。 Anton Gaisin 2016.11.14 11:19 #139 Eugeniy Lugovoy: 您需要检查路径...UAC 可能会影响它。你为 INI 设置的路径是什么?终端目录还是数据?你的档案中有一些示例......在这些示例中,我保留了所有内容。我只是修改了 INI。问题解决了。我自己也很蠢。之前,MT4 文件夹和数据文件夹是放在一起的。现在,数据文件夹存储在 Windows 的一个特殊区域。现在,使用TerminalInfoString(TERMINAL_DATA_PATH) 而不是 TerminalPath() 来设置路径是正确的。 Eugeniy Lugovoy 2016.11.14 17:14 #140 Anton Gaisin:您的档案中有一些示例......在这些示例中,我保留了原来的一切。只是更改了 ini。问题就解决了。我自己也很蠢。以前,MT4 文件夹和数据文件夹是放在一起的。现在,数据文件夹存储在 Windows 的一个特殊区域。现在,使用 TerminalInfoString(TERMINAL_DATA_PATH) 而不是 TerminalPath() 来设置路径是正确的。嗯...如果我没记错的话,我已经在最新版本(已在讨论中发布)中修正了它:)好吧,UTF 问题依然存在,如果我没有过度疲劳的话,我会在本周到周末尝试解决这个问题。 1...789101112131415161718192021...30 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这意味着什么?
当执行我这一行的代码时。
if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);}
res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);
在 MQL 中,所有字符串都是 Unicode 字符串,而你传递的是 ANSI 字符串。
这就是 dllka 崩溃的原因。
在 MQL 中,所有字符串都是 Unicode 字符串,而您传递的是 ANSI 字符串。
这就是 dll 崩溃的原因。
如果我删除条件,一切都能正常工作,总的来说,你可以用不同的方法重做,我只是不明白为什么会崩溃。
//if(DB==-1){
DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);
//}
res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);
在 MQL 中,所有字符串都是 Unicode 字符串,而您传递的是 ANSI 字符串。
这就是 dll 崩溃的原因。
如果我删除条件,一切正常,一般来说,你可以用不同的方法重做,只是不明白为什么会崩溃。
//if(DB==-1){
DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);
//}
res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);
这段代码之前有连接吗?在条件之前,DB 等于多少?如果 DB 变量没有初始化,可能就是因为这个原因。
在最后一个示例中,您正常打开了与数据库的连接,因此游标也能正常工作。
DLL 附带的脚本是否有效?尤金,你好!
感谢您提供的脚本。我决定在我的项目 中使用它。但在测试你附在项目中的脚本时,我发现了一个不清楚的错误。ReadIni 不工作。也许我做错了什么,但它总是从 ini 返回空值。原因可能是什么?我怀疑它没有在指定路径上找到文件,但我检查了不同的目录,一切都正确无误。
如果我直接在代码中为连接指定数据,则一切正常。
我使用的是 mt4。尤金,你好!
感谢您提供的脚本。我决定在我的项目中使用它。但在测试你附在项目中的脚本阶段,我发现了一个不清楚的错误。ReadIni 不工作。也许我做错了什么,但它总是从 ini 返回空值。原因可能是什么?我怀疑它没有在指定路径上找到文件,但我检查了不同的目录,一切都正确无误。
如果我直接在代码中为连接指定数据,则一切正常。
我使用的是 mt4。你应该检查路径...UAC 很可能会有影响。你设置的 INI 路径是什么?终端目录还是数据?
还有一个问题:俄文文本插入到了 karakaziaby 中。当然,我知道 dll 正在重新编码,但我的数据库是 UTF-8。我应该怎么做才能插入可读的俄文文本呢......?
是的,ASCII 转换正在进行中,中国同事对此也有评论。一旦我有时间,我会尽快解决这个问题。
您需要检查路径...UAC 可能会影响它。你为 INI 设置的路径是什么?终端目录还是数据?
你的档案中有一些示例......在这些示例中,我保留了所有内容。我只是修改了 INI。
问题解决了。我自己也很蠢。之前,MT4 文件夹和数据文件夹是放在一起的。现在,数据文件夹存储在 Windows 的一个特殊区域。现在,使用TerminalInfoString(TERMINAL_DATA_PATH) 而不是 TerminalPath() 来设置路径是正确的。
您的档案中有一些示例......在这些示例中,我保留了原来的一切。只是更改了 ini。
问题就解决了。我自己也很蠢。以前,MT4 文件夹和数据文件夹是放在一起的。现在,数据文件夹存储在 Windows 的一个特殊区域。现在,使用 TerminalInfoString(TERMINAL_DATA_PATH) 而不是 TerminalPath() 来设置路径是正确的。
嗯...如果我没记错的话,我已经在最新版本(已在讨论中发布)中修正了它:)
好吧,UTF 问题依然存在,如果我没有过度疲劳的话,我会在本周到周末尝试解决这个问题。