Библиотеки: 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 из директории, то ошибка будет другой: "Cannot open AdoSuite.dll'(126)").

Нил.

PS: даже такой простой скрипт, как приведенный ниже, не срабатывает с той же ошибкой 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
  • ПУТЬ_ДАННЫХ_ТЕРМИНАЛА
  • ПУТЬ_ДАННЫХ_ТЕРМИНАЛА

 

Здравствуйте Александр,

Я скопировал все файлы правильно, но получаю ошибку:


'CAdoRecord::Values' - cannot call protected member function DbDataAdapter.mqh 108 23

Когда я включаю один из этих инклудов:

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

Если я сделаю 'CAdoRecord::Values public, я получу ошибку инициализации при запуске моего EA скрипта.

Можете ли вы помочь?

Спасибо


Хорошо, я решил эту проблему. Копмилирую 64bot и он запускается без ошибок.

 
А как с помощью этой библиотеки заставить NULL в поле таблицы INSERT'ом с параметрами вставить? Я как не старался - оно мне 0 пытается вставить.
 

Подскажите, в чем может быть проблема.

При компиляции выдает предупреждение:

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

и ошибку:

'=' - cannot convert from const pointer to nonconst pointer    AdoRecord.mqh    80    19

 
SergeyVS:

Подскажите, в чем может быть проблема.

При компиляции выдает предупреждение:

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

и ошибку:

'=' - cannot convert from const pointer to nonconst pointer    AdoRecord.mqh    80    19

в строках 62 и 82 файла AdoRecord.mqh нужно убрать "const" из объявления и реализации метода CAdoRecord::Compare

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

82: int CAdoRecord::Compare(const CObject* node, int mode = 0)
Коды обновлены.
 

Подскажите пожалуйста как возможно решить следующую проблемку:  AdoSuite.dll' is not 64-bit version. И не хочет работать....

Заранее, спасибо! 

 
Alex_L:

Подскажите пожалуйста как возможно решить следующую проблемку:  AdoSuite.dll' is not 64-bit version. И не хочет работать....

Заранее, спасибо! 

Перекомпилировать проект под 64 разрядную платформу. Но тут другие грабли, при запуске любого примера пишет: invalid EX5 file (8)

 
Автор проект ещё жив? Есть рабочая версия под х64?
[Удален]  

На всякий случай, может кому пригодится, выложу ссылку тут:

MT4-ODBC Bridge

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

This is a library for the popular trading terminal, MetaTrader4 (MT4), to give access to a relational database through ODBC interface. The main features are as follows.

  • Recording price data
  • Synchronizing trade status
  • Executing orders

MT4 has its own programming language, MQL4, for algorithmic trading. Though it is easy to learn, its expressiveness is very limited. People who want to execute more sophisticated algorithm tend to resort to outside of MT4, typically using DLL. But the native programming of DLLs is restricted to the Windows platform, which is not familiar to mainstream programmers of the recent open source movement.

MT4-ODBC Bridge (MOB in short) provides a buffer area onto a RDBMS like MySQL, PostgreSQL, SQLite, etc. Such database is general enough for the most open source programmers. You can access to the database by your familiar language, or maybe directly by SQL.

Это самодельный мостик через DLL между терминалом MT4 и ODBC драйвером любой базы данных. А база может быть даже в памяти in-memory типа H2, что позволяет обмениваться данными между советником и индикатором, собирать тики, другие данные,  или управлять советником или индикатором. А также всё остальное.

Файлы: