文章 "如何从 MQL5 (MQL4) 访问 MySQL 数据库" - 页 13

 
Pavel Kolchin:

Win 7 x64 - 最新版 mt5 x64 (v5 b1455)

我无法进入 MySQL,但这并不可惜

服务器:通过 UNIX 套接字连接本地主机

服务器类型:Percona 服务器

服务器版本:5.5.35-33.0-log - Percona Server (GPL), Release rel33.0, Revision 611

协议版本:10

用户:***

服务器编码:UTF-8 Unicode (utf8)

在 mql4 中工作
错误已重现。我会解决它...
 

以下是为 MQL5 重新编译的 x64 版本

Pavel 试试看。

附加的文件:
MQL5_x64.zip  1412 kb
 
Eugeniy Lugovoy:


Dll 连接不再有问题

一切正常,谢谢

 
Pavel Kolchin:

Dll 连接不再有问题

一切正常,谢谢

随时乐意为您效劳。

祝您的项目 好运。

 
Yuriy Asaulenko:

谢谢,我读了。这篇文章的作者说得非常好,他一进来,.....。毁了一切)。


我自己也不止一次遇到过碰撞问题。例如,如果一个交易机器人连接到不同的图表,但使用的是一个基础,而且访问的是一个通用表(例如注册/更改会话、账户),那么在任何情况下都会出现类似 "表被锁定 "的错误。即使所有事务都已完成,光标都已关闭,数据库也是在共享模式下打开的,也无济于事。


评论者可能没有理解sqlite 的设置,这种设置是通过编译带锁模式或通过 pragma 来解决所有碰撞问题的。

我可以说,我已经在同时读/写多线程的重型项目上工作了好几年,没有任何问题,最主要的是我的手很直。

 
o_O:

评论者可能没有理解 sqlite 的设置,它通过带锁模式的编译或通过 pragma 来解决所有碰撞问题。

我可以说,我已经在同时读/写多线程的重型项目上工作了好几年,没有任何问题,最主要的是我的手很直。

o_O

如果有的话,我可以接手SQLite 项目,编写测试脚本/EA,如果再次出现锁问题,我们可以一起解决(如果你不介意的话),并为社区提供软件解决方案。

这可能值得关注,因为 DB 有一些优势(自主性、SQL、移动性、可嵌入性等)。

事实上,我从 SQLite 中提取了一个现成的 DLL(不是源代码),但没有重新编译,只是使用了 C++ API。

 
Eugeniy Lugovoy:

o_O

如果有的话,我可以接手 SQLite 项目,编写测试脚本/EA,如果再次出现锁问题,我们可以一起解决(如果你不介意的话),并为社区提供软件解决方案。

这可能值得关注,因为 DB 有一些优势(自主性、SQL、移动性、可嵌入性等)。

事实上,我从 SQLite 中提取了一个现成的 DLL(不是源代码),但没有重新编译,只是使用了 C++ API。

如果SQLite 锁定的 "神话 "得到证实或被打破,那将会非常有趣。如果没有这种不确定性或解决它的方案,SQLite 对于互操作性来说是一个非常有吸引力的选择。如果能了解 SQlite 的性能,例如与使用 Access 的相同数据库相比,那将会非常有趣。当然,如果有人真的有时间和愿望做这项工作的话。

还有一些问题是如何将数据库与第三方软件连接起来,第三方软件可以连接到任何数据库--Access、SQL Server、Oracle 等。SQLite 是否在计算机上安装了类似 OLEDB 或至少 ODBC 的驱动程序?在同一个 Access 中,多个应用程序可以通过不同的接口异步写入和读取同一个数据库,不会出现任何问题。我怀疑这在 SQLite 中可能行不通。

 
Yuriy Asaulenko:

如果 SQLite 锁定的 "神话 "得到证实或破灭,那将会非常有趣。如果没有这种不确定性或消除这种不确定性的解决方案,SQLite 对于互操作性来说是一个非常有吸引力的选择。如果能了解 SQLite 的性能,例如与使用 Access 的相同数据库相比,也会很有意义。当然,如果有人真的有时间和愿望做这项工作的话。

还有一些问题是如何将数据库与第三方软件连接起来,第三方软件可以连接到任何数据库--Access、SQL Server、Oracle 等。SQLite 是否在计算机上安装了类似 OLEDB 或至少 ODBC 的驱动程序?在同一个 Access 中,多个应用程序可以通过不同的接口异步写入和读取同一个数据库,不会出现任何问题。我怀疑这对 SQLite 可能不起作用。

用于SQLite 的 OLEDB 是可用的,只需谷歌一下。顺便说一句,通过 OLEDB 到 SQLite.... 运行有关定位的测试脚本是一个有趣的想法。当然,这很变态,但我们都是变态....。

在本地访问方面,我相信通过共同努力,我们可以取得积极的成果。只是时间问题,我这周做不了...也许周末我会抽出时间...

 
Eugeniy Lugovoy:

用于 SQLite 的 OLEDB 是可用的,只需谷歌一下。顺便说一下,通过 OLEDB 到 SQLite.... 来运行有关 loc 的测试脚本,是个有趣的想法。当然很变态,但我们都是变态....

关于本地访问,我相信通过共同努力,我们可以取得积极的成果。只是时间问题,我这周做不了...也许周末我会抽出时间...

我有一个应用程序,它创建一个数据库,并在许多表中写入(而不是读入)大量信息。如果我能找到一个已安装在计算机上并通过应用程序设置可见的 OLEDB 驱动程序,就可以轻松测试SQLite 是否会挂起。同样,你也可以用相同的 Access 连接到 SQLite,并尝试并行读取和修改表。当然,这是不可能的。

通过互联网查找。一下子找不到这样的 OLEDB 提供商。据我所知,所有更多的 OLEDB 动态链接库只能通过编程语言使用。

 

这意味着什么?

当我在这一行运行代码时

if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);}

res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);