Bibliotheken: AdoSuite v 1.0 - Seite 3

 

Hallo Alexander,

vielen Dank für die Bereitstellung dieser Bibliotheken. Irgendwie habe ich versucht, sie zu installieren und einige deiner Beispiele zum Laufen zu bringen, aber ich stoße immer wieder auf das gleiche Problem. Wenn ich versuche, eines der Skripte auszuführen, erhalte ich die Fehlermeldung:

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

Die AdoSuite.dll befindet sich im richtigen Verzeichnis, das .NET 2.0-Framework ist installiert, ich habe alle Ihre Anweisungen befolgt, aber dennoch treffe ich immer wieder auf diesen Fehler, selbst bei dem einfachsten Skript, bei dem ich nur eine Einbindung Ihrer Bibliothek vornehme.


Irgendeine Idee, woher das kommen könnte? (übrigens liegt das Problem nicht daran, dass ADOSuite.dll nicht im Verzeichnis ist: wenn ich die dll aus dem Verzeichnis entferne, ist der Fehler ein anderer: "Cannot open AdoSuite.dll'(126)")

Neil.

PS: Sogar ein so einfaches Skript wie das unten stehende schlägt mit demselben Fehler 14001 fehl. Könnte es sein, dass Ihre DLL andere DLLs "sehen" muss?

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

//|                                                      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");

  }

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

 

Hallo,

Sie haben es wahrscheinlich mit einem Problem zu tun, das mit dem Datenverzeichnis Ihres Terminals zusammenhängt. Es gibt 3 Verzeichnisse, die MT5 verwendet:

  • TERMINAL_PATH
  • TERMINAL_DATA_PATH
  • TERMINAL_COMMONDATA_PFAD

 

Hallo Alexander,

ich habe alle Dateien richtig kopiert, bekomme aber den Fehler:


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

wenn ich eines der folgenden Includes einbinde:

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

Wenn ich 'CAdoRecord::Values public' mache, bekomme ich die Initialisierung nicht, wenn ich mein EA-Skript ausführe.

Können Sie mir helfen?

Danke


Ok, ich habe es gelöst. Copmilation mith 64bot und es startet ohne Fehler.

 
Wie kann ich diese Bibliothek verwenden, um zu erzwingen, dass NULL in ein Tabellenfeld durch INSERT mit Parametern eingefügt wird? Egal, wie sehr ich mich anstrenge, es versucht, 0 einzufügen.
 

Können Sie mir sagen, was das Problem sein könnte?

Beim Kompilieren wird eine Warnung erzeugt:

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

und den Fehler:

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

 
SergeyVS:

Können Sie mir sagen, was das Problem sein könnte?

Beim Kompilieren wird eine Warnung erzeugt:

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

und den Fehler:

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

in den Zeilen 62 und 82 der Datei AdoRecord.mqh sollten Sie "const" aus der Deklaration und Implementierung der Methode CAdoRecord::Compare entfernen.

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

82: int CAdoRecord::Compare(const CObject* node, int mode = 0)
Die Codes sind aktualisiert worden.
 

Können Sie mir bitte sagen, wie ich das folgende Problem lösen kann: AdoSuite.dll' ist keine 64-Bit-Version. Und will nicht funktionieren....

Vielen Dank im Voraus!

 
Alex_L:

Können Sie mir bitte sagen, wie ich das folgende Problem lösen kann: AdoSuite.dll' ist keine 64-Bit-Version. Und will nicht funktionieren....

Vielen Dank im Voraus!

Kompilieren Sie das Projekt für die 64-Bit-Plattform neu. Aber es gibt noch andere Probleme, beim Starten eines Beispiels wird geschrieben: ungültige EX5-Datei (8)

 
Ist der Autor des Projekts noch am Leben? Gibt es eine funktionierende Version für x64?
[Gelöscht]  

Nur für den Fall, dass es für jemanden nützlich sein könnte, werde ich den Link hier veröffentlichen:

MT4-ODBC-Brücke

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

Dies ist eine Bibliothek für das beliebte Trading-Terminal MetaTrader4 (MT4), die den Zugriff auf eine relationale Datenbank über eine ODBC-Schnittstelle ermöglicht. Die Hauptmerkmale sind wie folgt

  • Aufzeichnung von Kursdaten
  • Synchronisierung des Handelsstatus
  • Ausführen von Aufträgen

MT4 verfügt über eine eigene Programmiersprache, MQL4, für den algorithmischen Handel. Obwohl sie leicht zu erlernen ist, ist ihre Ausdruckskraft sehr begrenzt. Wer anspruchsvollere Algorithmen ausführen möchte, muss dazu neigen, auf Programme außerhalb von MT4 zurückzugreifen, in der Regel auf DLLs. Die native Programmierung von DLLs ist jedoch auf die Windows-Plattform beschränkt, die den Mainstream-Programmierern der jüngsten Open-Source-Bewegung nicht vertraut ist.

MT4-ODBC Bridge (kurz MOB) bietet einen Pufferbereich zu einem RDBMS wie MySQL, PostgreSQL, SQLite, usw. Eine solche Datenbank ist allgemein genug für die meisten Open-Source-Bewegung. Eine solche Datenbank ist allgemein genug für die meisten Open-Source-Programmierer. Sie können über Ihre gewohnte Sprache auf die Datenbank zugreifen, oder vielleicht direkt über SQL.

Dies ist eine hausgemachte Brücke via DLL zwischen MT4-Terminal und ODBC-Treiber einer beliebigen Datenbank. Und die Datenbank kann sogar In-Memory wie H2 sein, was Ihnen erlaubt, Daten zwischen EA und Indikator auszutauschen, Ticks oder andere Daten zu sammeln oder EA oder Indikator zu steuern. Und alles andere.

Dateien: