资料库: AdoSuite v 1.0 - 页 3

 

你好,亚历山大、

感谢您提供这些库。不知何故,我试图安装它们并让您的一些示例正常工作,但却一次又一次地遇到同样的问题。当我尝试运行其中一个脚本时,得到了错误信息:

2011.03.11 09:06:22 1 Inserting a record (GBPUSD,H1) Cannot open 'C:\Program Files\MetaTrader 5\MQL5\Libraries\AdoSuite.dll' (14001)

AdoSuite.dll 在正确的目录下,.NET 2.0 框架已安装,我已按照您的所有说明进行操作,但总是出现这个错误,即使是最简单的脚本,我只包含了您的库。


有什么办法可以解决这个问题吗?(顺便说一下,这个问题并不是因为 ADOSuite.dll 不在目录中:如果我从目录中删除了 该 dll,错误就会变成另一个:"无法打开 AdoSuite.dll'(126)")。

尼尔

注:即使像下面这样简单的脚本也会出现同样的 14001 错误。您的 DLL 是否需要 "查看 "其他 DLL?

//+------------------------------------------------------------------+

//|                                                      TestADO.mq5 |

//|                        Copyright 2011, MetaQuotes Software Corp. |

//|                                              http://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2011, MetaQuotes Software Corp."

#property link      "http://www.mql5.com"

#property version   "1.00"

//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

#include <Ado\Providers\OleDb.mqh>

void OnStart()

  {

   Comment("Test");

  }

//+------------------------------------------------------------------+

 

你好、

您可能遇到了与终端数据目录有关的问题。MT5 使用 3 个位置:

  • TERMINAL_PATH
  • 终端数据路径
  • terminal_commondata _path

 

你好,亚历山大、

我正确地复制了所有文件,但出现了错误:


CAdoRecord::Values' - 无法调用受保护的成员函数 DbDataAdapter.mqh 108 23

当我包含以下其中一个包含项时

#include <Ado\Providers\OleDb.mqh>
#include <Ado\Providers\Odbc.mqh>
#include <Indicators\BsvSqlServer.mqh>

如果我将 "CAdoRecord::Values public "设为公用,我的 EA 脚本就会初始化失败。

您能提供帮助吗?

谢谢


好的,我解决了。我用 64bot 进行了编译,启动时没有出错。

 
如何使用该库通过带参数 INSERT 在表字段中强制插入NULL?无论我怎么努力,它都试图插入 0。
 

您能告诉我问题出在哪里吗?

编译时产生了警告:

differed by const qualifier,function CAdoRecord::Compare overrides CObject::Compare AdoRecord.mqh 61 54

和错误:

=' - 不能从 const 指针转换为非 const 指针 AdoRecord.mqh 80 19

 
SergeyVS:

您能告诉我问题出在哪里吗?

编译时产生了警告:

differed by const qualifier, function CAdoRecord::Compare overrides CObject::Compare AdoRecord.mqh 61 54

和错误:

=' - 不能从 const 指针转换为非 const 指针 AdoRecord.mqh 80 19

在 AdoRecord.mqh 文件的第 62 和 82 行中,应删除 CAdoRecord::Compare 方法的声明和实现中的 "const"。

62: virtual int Compare(const  CObject* node, int mode = 0);

82: int CAdoRecord::Compare(const CObject* node, int mode = 0)
代码已更新。
 

请告诉我如何解决以下问题:"AdoSuite.dll "不是 64 位版本。并且不想运行....

预先致谢!

 
Alex_L:

请告诉我如何解决以下问题:"AdoSuite.dll "不是 64 位版本。并且不想运行....

预先致谢!

为 64 位平台重新编译项目。但还有其他问题,启动任何示例时都会写入:无效的 EX5 文件 (8)

 
该项目的 作者还健在吗?有 x64 的工作版本吗?
 

为了以防万一,我将在此发布链接:

MT4-ODBC 桥接器

https://github.com/onagano/mt4-odbc-bridge

这是一个用于流行交易终端 MetaTrader4 (MT4) 的库,可通过 ODBC 接口访问关系数据库。主要功能如下。

  • 记录价格数据
  • 同步交易状态
  • 执行订单

MT4 有自己的编程语言 MQL4,用于算法交易。虽然简单易学,但其表现力非常有限。想要执行更复杂算法的人往往会求助于 MT4 之外的编程语言,通常是使用 DLL。但 DLLs 的本地编程仅限于 Windows 平台,对于最近开源运动中的主流程序员来说并不熟悉。

MT4-ODBC Bridge(简称 MOB)为 MySQL、PostgreSQL、SQLite 等 RDBMS 提供了缓冲区。对于大多数开源程序员来说,这样的数据库足够通用。你可以用自己熟悉的语言访问数据库,也可以直接用 SQL 访问。

这是 MT4 终端与任何数据库的 ODBC 驱动程序之间通过 DLL 自制的桥梁。该数据库甚至可以像 H2 数据库一样是内存数据库,这样您就可以在 EA 和指标之间交换数据、收集刻度、其他数据或控制 EA 或指标。还有其他一切。

附加的文件: