Bibliothèque: AdoSuite v 1.0 - page 3

 

Bonjour Alexander,

Merci d'avoir mis ces bibliothèques à disposition. J'ai essayé de les installer et de faire fonctionner certains de vos échantillons, mais je rencontre toujours le même problème. Lorsque j'essaie d'exécuter l'un des scripts, j'obtiens le message d'erreur suivant :

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 est dans le bon répertoire, le framework .NET 2.0 est installé, j'ai suivi toutes vos instructions, mais je rencontre toujours cette erreur, même avec le script le plus simple où je ne fais qu'inclure votre bibliothèque.


Une idée de l'origine de cette erreur ? (Par ailleurs, le problème n'est pas dû au fait que ADOSuite.dll n'est pas dans le répertoire : si je supprime la dll du répertoire, l'erreur est différente : "Cannot open AdoSuite.dll'(126)")

Neil.

PS : même un script aussi simple que celui ci-dessous échoue avec la même erreur 14001. Se pourrait-il que votre DLL ait besoin de "voir" d'autres 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");

  }

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

 

Bonjour,

Vous êtes probablement confronté à un problème lié au répertoire de données de votre terminal. MT5 utilise 3 emplacements :

  • TERMINAL_PATH
  • CHEMIN_DONNÉES_TERMINAL
  • CHEMIN_DES_DONNÉES_DU_TERMINAL

 

Bonjour Alexander,

J'ai copié tous les fichiers correctement, mais j'obtiens l'erreur :


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

lorsque j'inclus l'un de ces includes :

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

Si je rends 'CAdoRecord::Values public, j'obtiens l'échec de l'initialisation lors de l'exécution de mon script EA.

Pouvez-vous m'aider ?

Merci d'avance.


Ok, j'ai résolu le problème. Copmilation avec 64bot et démarrage sans erreur.

 
Comment puis-je utiliser cette bibliothèque pour forcer l'insertion de NULL dans un champ de table par INSERT avec paramètres ? J'ai beau essayer, il essaie d'insérer 0 dans mon champ.
 

Pouvez-vous me dire quel est le problème ?

Lors de la compilation, un avertissement est généré :

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

et une erreur :

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

 
SergeyVS:

Pouvez-vous me dire quel est le problème ?

Lors de la compilation, un avertissement est généré :

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

et une erreur :

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

dans les lignes 62 et 82 du fichier AdoRecord.mqh, vous devez supprimer "const" de la déclaration et de l'implémentation de la méthode CAdoRecord::Compare.

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

82: int CAdoRecord::Compare(const CObject* node, int mode = 0)
Les codes ont été mis à jour.
 

Pourriez-vous me dire comment résoudre le problème suivant : AdoSuite.dll' n'est pas une version 64-bit. Et ne veut pas fonctionner....

Merci d'avance !

 
Alex_L:

Pourriez-vous me dire comment résoudre le problème suivant : AdoSuite.dll' n'est pas une version 64-bit. Et ne veut pas fonctionner....

Merci d'avance !

Recompilez le projet pour la plate-forme 64 bits. Mais il y a d'autres problèmes, lors du lancement d'un exemple il est écrit : invalid EX5 file (8)

 
L'auteur du projet est-il toujours en vie ? Existe-t-il une version fonctionnelle pour x64 ?
[Supprimé]  

Au cas où cela pourrait être utile à quelqu'un, je vais poster le lien ici :

MT4-ODBC Bridge

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

Il s'agit d'une bibliothèque pour le terminal de trading populaire, MetaTrader4 (MT4), qui permet d'accéder à une base de données relationnelle par l'intermédiaire de l'interface ODBC. Les principales caractéristiques sont les suivantes

  • Enregistrement des données de prix
  • Synchronisation de l'état des transactions
  • Exécution des ordres

MT4 possède son propre langage de programmation, MQL4, pour le trading algorithmique. Bien qu'il soit facile à apprendre, son expressivité est très limitée. Les personnes qui souhaitent exécuter des algorithmes plus sophistiqués ont tendance à se tourner vers l'extérieur de MT4, généralement en utilisant des DLL. Mais la programmation native des DLL est limitée à la plateforme Windows, qui n'est pas familière aux programmeurs du récent mouvement open source.

Le pont MT4-ODBC (MOB en abrégé) fournit une zone tampon à un SGBDR tel que MySQL, PostgreSQL, SQLite, etc. Une telle base de données est suffisamment générale pour la plupart des programmeurs open source. Vous pouvez accéder à la base de données par votre langage familier, ou peut-être directement par SQL.

Il s'agit d'une passerelle maison via DLL entre le terminal MT4 et le pilote ODBC de n'importe quelle base de données. Et la base de données peut même être en mémoire comme H2, ce qui vous permet d'échanger des données entre l'EA et l'indicateur, de collecter des ticks, d'autres données, ou de contrôler l'EA ou l'indicateur. Et tout le reste.

Dossiers :