文章 "如何从 MQL5 (MQL4) 访问 MySQL 数据库" - 页 9 12345678910111213141516...30 新评论 Sergey Deynego 2016.01.16 12:31 #81 Eugeniy Lugovoy: 刚刚检查了 MT4 版本 890 x32。一切正常。运行测试脚本的日志:各位,请说明1.什么操作会出现"读取访问违规"??2.运行 MySQL-001 脚本时,专家选项卡上显示的 MQLMySQL 版本是什么? 应该是:MQLMySQL v2.2 x32 Copyright © 2014, FxCodex Laboratory。3.3. MySQL 数据库是什么版本? 4. MySQL 是在本地使用还是在远程主机上使用?5.您 在哪个操作系统下运行终端?请检查并反馈,因为我无法重现错误。我将创建一个类似的环境并进行测试。我使用的是 MT4 (950)。我从文章所附的档案中提取了文件。MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo 版权所有 © 2014, FxCodex Laboratory。它无法从配置文件中读取数据。 Eugeniy Lugovoy 2016.01.16 17:16 #82 Sergey Deynego:我使用 MT4 (950)。我从文章所附的档案中提取了文件。MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo 版权所有 © 2014, FxCodex Laboratory。它无法从配置文件中读取数据。是的,v2.0 已经过时。我已在文章讨论中发布了更新版本。我现在附上它。MQLMySQL v2.2 - 适用于 x64 和 x86 的 DLL项目 源代码试试这个。它似乎是最新版本。 附加的文件: MQLMySQL_v2.2.zip 4801 kb MQL4_x32.zip 1073 kb MQL5_x32.zip 1073 kb MQL5_x64.zip 1076 kb peg 2016.01.18 11:56 #83 Eugeniy Lugovoy:根据我从您的日志中看到的错误:0 11:09:37.742 MySQL-002 EURUSD,H1: 表 `table` 无法创建。您使用的名称 "table "是 mysql 数据库的关键字,不能用作表名,试着改为 "table1",以检查是否有效。您可以在连接后立即执行命令 "USE database_name",其中 database_name 是您的数据库名称。例如,我的数据库是 "mysql": DB = MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag); if (DB ==-1) { Print ("Connection failed! Error : "+MySqlErrorDescription); } else { Print ("Connected! DBID#",DB);}MySqlExecute(DB, "USE mysql");我按照您的建议输入了表名和MySqlExecute(DB, "USE mt4") 命令,但还是收到了错误信息:0 12:51:40.534 脚本 MySQL-002new EURUSD,M1: 载入成功0 12:51:40.549 MySQL-002new EURUSD,M1: 已初始化0 12:51:40.549 MySQL-002new EURUSD,M1:MQLMySQL v2.0 演示 Copyright © 2014, FxCodex Laboratory0 12:51:40.549 MySQL-002new EURUSD,M1: Host:, User: , Database:0 12:51:40.549 MySQL-002new EURUSD,M1:连接...0 12:51:40.565 MySQL-002new EURUSD,M1:已连接!DBID#00 12:51:40.565 MySQL-002new EURUSD,M1: 表 `test_table` 无法创建。错误:Aucune base n'a n'a s?0 12:51:40.565 MySQL-002new EURUSD,M1:断开连接。脚本已完成!0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 00 12:51:40.565 脚本 MySQL-002new EURUSD,M1:删除 Discussion of article "How 如何从 MQL5 (MQL4) 访问 让新闻交易轻松上手(第二部分):风险管理 Mehdi Donyadideh Ahrab 2016.02.19 22:25 #84 你好,尤金尼-卢戈沃伊、非常感谢你的实用项目。我试图从一个表中读取一个字符串字段,它大约有 3000 个字符,我是这样使用 "MySqlGetFieldAsString "的:if (Cursor >= 0){Rows = MySqlCursorRows(Cursor);for (int i=0; i<Rows; i++)if (MySqlCursorFetchRow(Cursor)){Get_Setting = MySqlGetFieldAsString(Cursor, 4);} .....但问题是 Get_String 只返回 1025 个字符、我需要完整读取该字段。你能帮我解决这个问题吗?谢谢 Eugeniy Lugovoy 2016.02.24 12:30 #85 FX. MDA7:你好,尤金尼-卢戈沃伊、非常感谢你的实用项目。我试图从一个表中读取一个字符串字段,它大约有 3000 个字符,我是这样使用 "MySqlGetFieldAsString "的:if (Cursor >= 0){Rows = MySqlCursorRows(Cursor);for (int i=0; i<Rows; i++)if (MySqlCursorFetchRow(Cursor)){Get_Setting = MySqlGetFieldAsString(Cursor, 4);} .....但问题是 Get_String 只返回 1025 个字符、我需要完整读取该字段。你能帮我解决这个问题吗?问题 是的,我将字符数据的最大长度设置为 1024 个字符。我可以更改这个限制并重建 DLL。顺便问一下,您在数据库中使用的列的数据类型是什么? Eugeniy Lugovoy 2016.02.24 12:32 #86 peg:我按照您的建议输入了表名和MySqlExecute(DB, "USE mt4") 命令,但仍收到错误信息:0 12:51:40.534 脚本 MySQL-002new EURUSD,M1: 载入成功0 12:51:40.549 MySQL-002new EURUSD,M1: 已初始化0 12:51:40.549 MySQL-002new EURUSD,M1:MQLMySQL v2.0 演示 Copyright © 2014, FxCodex Laboratory0 12:51:40.549 MySQL-002new EURUSD,M1: Host:, User: , Database:0 12:51:40.549 MySQL-002new EURUSD,M1:连接...0 12:51:40.565 MySQL-002new EURUSD,M1:已连接!DBID#00 12:51:40.565 MySQL-002new EURUSD,M1: 表 `test_table` 无法创建。错误:Aucune base n'a n'a s?0 12:51:40.565 MySQL-002new EURUSD,M1:断开连接。脚本已完成!0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 00 12:51:40.565 脚本 MySQL-002new EURUSD,M1: 删除 为什么版本"MQLMySQL v2.0"? Ingvar Engelbrecht 2016.02.29 00:09 #87 出色!使用 MQL5 为 MQL4 生成数据。一切都运行得很好,除了我必须去掉查询命令中 tablename 周围的单引号Query ="SELECT Symbol,Composite,Pattern FROM summarytable";工作正常 Eugeniy Lugovoy 2016.02.29 09:56 #88 Ingvar Engelbrecht:出色!使用 MQL5 为 MQL4 生成数据。一切都运行得很好,除了我必须去掉查询命令中 tablename 周围的单引号Query ="SELECT Symbol,Composite,Pattern FROM summarytable";运行正常是的,如果不打算用大/小写(mysql 区分大小写)和特殊符号命名表,可以不加引号。顺便说一下,不是单引号"'",而是"`"。所以你的查询也可以是Query ="SELECT `Symbol`,`Composite`,`Pattern` FROM `summarytable`";如果您想将列命名为Symbol,而不是 symbol 或 SYMBOL danny_adil 2016.03.08 14:00 #89 你好,尤金尼、感谢您的模块,非常有帮助。您能帮我添加获取字段名称的函数 吗? 1982EAcsc 2016.04.23 17:36 #90 how are you !system win10 64x, Unable to connect to the database ,can you help me ? 12345678910111213141516...30 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
刚刚检查了 MT4 版本 890 x32。一切正常。
运行测试脚本的日志:
各位,请说明
1.什么操作会出现"读取访问违规"??
2.运行 MySQL-001 脚本时,专家选项卡上显示的 MQLMySQL 版本是什么? 应该是:MQLMySQL v2.2 x32 Copyright © 2014, FxCodex Laboratory。
3.3. MySQL 数据库是什么版本?
4. MySQL 是在本地使用还是在远程主机上使用?
5.您 在哪个操作系统下运行终端?
请检查并反馈,因为我无法重现错误。
我将创建一个类似的环境并进行测试。
我使用的是 MT4 (950)。我从文章所附的档案中提取了文件。MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo 版权所有 © 2014, FxCodex Laboratory。
它无法从配置文件中读取数据。
我使用 MT4 (950)。我从文章所附的档案中提取了文件。MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo 版权所有 © 2014, FxCodex Laboratory。
它无法从配置文件中读取数据。
是的,v2.0 已经过时。我已在文章讨论中发布了更新版本。
我现在附上它。
MQLMySQL v2.2 - 适用于 x64 和 x86 的 DLL项目 源代码
试试这个。它似乎是最新版本。
根据我从您的日志中看到的错误:0 11:09:37.742 MySQL-002 EURUSD,H1: 表 `table` 无法创建。
您使用的名称 "table "是 mysql 数据库的关键字,不能用作表名,试着改为 "table1",以检查是否有效。
您可以在连接后立即执行命令 "USE database_name",其中 database_name 是您的数据库名称。
例如,我的数据库是 "mysql":
DB = MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);
if (DB ==-1) { Print ("Connection failed! Error : "+MySqlErrorDescription); } else { Print ("Connected! DBID#",DB);}
MySqlExecute(DB, "USE mysql");
我按照您的建议输入了表名和MySqlExecute(DB, "USE mt4") 命令,但还是收到了错误信息:
0 12:51:40.534 脚本 MySQL-002new EURUSD,M1: 载入成功
0 12:51:40.549 MySQL-002new EURUSD,M1: 已初始化
0 12:51:40.549 MySQL-002new EURUSD,M1:MQLMySQL v2.0 演示 Copyright © 2014, FxCodex Laboratory
0 12:51:40.549 MySQL-002new EURUSD,M1: Host:, User: , Database:
0 12:51:40.549 MySQL-002new EURUSD,M1:连接...
0 12:51:40.565 MySQL-002new EURUSD,M1:已连接!DBID#0
0 12:51:40.565 MySQL-002new EURUSD,M1: 表 `test_table` 无法创建。错误:Aucune base n'a n'a s?
0 12:51:40.565 MySQL-002new EURUSD,M1:断开连接。脚本已完成!
0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 0
0 12:51:40.565 脚本 MySQL-002new EURUSD,M1:删除
你好,尤金尼-卢戈沃伊、
非常感谢你的实用项目。
我试图从一个表中读取一个字符串字段,它大约有 3000 个字符,我是这样使用 "MySqlGetFieldAsString "的:
if (Cursor >= 0)
{
Rows = MySqlCursorRows(Cursor);
for (int i=0; i<Rows; i++)
if (MySqlCursorFetchRow(Cursor))
{
Get_Setting = MySqlGetFieldAsString(Cursor, 4);
}
.....
但问题是 Get_String 只返回 1025 个字符、
我需要完整读取该字段。
你能帮我解决这个问题吗?
谢谢
你好,尤金尼-卢戈沃伊、
非常感谢你的实用项目。
我试图从一个表中读取一个字符串字段,它大约有 3000 个字符,我是这样使用 "MySqlGetFieldAsString "的:
if (Cursor >= 0)
{
Rows = MySqlCursorRows(Cursor);
for (int i=0; i<Rows; i++)
if (MySqlCursorFetchRow(Cursor))
{
Get_Setting = MySqlGetFieldAsString(Cursor, 4);
}
.....
但问题是 Get_String 只返回 1025 个字符、
我需要完整读取该字段。
你能帮我解决这个问题吗?
问题
我按照您的建议输入了表名和MySqlExecute(DB, "USE mt4") 命令,但仍收到错误信息:
0 12:51:40.534 脚本 MySQL-002new EURUSD,M1: 载入成功
0 12:51:40.549 MySQL-002new EURUSD,M1: 已初始化
0 12:51:40.549 MySQL-002new EURUSD,M1:MQLMySQL v2.0 演示 Copyright © 2014, FxCodex Laboratory
0 12:51:40.549 MySQL-002new EURUSD,M1: Host:, User: , Database:
0 12:51:40.549 MySQL-002new EURUSD,M1:连接...
0 12:51:40.565 MySQL-002new EURUSD,M1:已连接!DBID#0
0 12:51:40.565 MySQL-002new EURUSD,M1: 表 `test_table` 无法创建。错误:Aucune base n'a n'a s?
0 12:51:40.565 MySQL-002new EURUSD,M1:断开连接。脚本已完成!
0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 0
0 12:51:40.565 脚本 MySQL-002new EURUSD,M1: 删除
出色!
使用 MQL5 为 MQL4 生成数据。
一切都运行得很好,除了我必须去掉查询命令中 tablename 周围的单引号
Query ="SELECT Symbol,Composite,Pattern FROM summarytable";
工作正常
出色!
使用 MQL5 为 MQL4 生成数据。
一切都运行得很好,除了我必须去掉查询命令中 tablename 周围的单引号
Query ="SELECT Symbol,Composite,Pattern FROM summarytable";
运行正常
是的,如果不打算用大/小写(mysql 区分大小写)和特殊符号命名表,可以不加引号。顺便说一下,不是单引号"'",而是"`"。
所以你的查询也可以是Query ="SELECT `Symbol`,`Composite`,`Pattern` FROM `summarytable`";
如果您想将列命名为Symbol,而不是 symbol 或 SYMBOL
你好,尤金尼、
感谢您的模块,非常有帮助。您能帮我添加获取字段名称的函数 吗?
how are you !
system win10 64x, Unable to connect to the database ,can you help me ?