Librerie: AdoSuite v 1.0 - pagina 3

 

Ciao Alexander,

grazie per aver reso disponibili queste librerie. In qualche modo, ho provato a installarle e a far funzionare alcuni dei tuoi esempi, ma ho riscontrato sempre lo stesso problema. Quando provo a eseguire uno degli script, ricevo il messaggio di errore:

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

AdoSuite.dll si trova nella directory corretta, il framework .NET 2.0 è installato, ho seguito tutte le vostre istruzioni, ma ho sempre riscontrato questo errore, anche con lo script più semplice in cui faccio solo un'inclusione della vostra libreria.


Avete idea da dove possa derivare? (tra l'altro il problema non è dovuto al fatto che ADOSuite.dll non è nella directory: se rimuovo la dll dalla directory l'errore è diverso: "Impossibile aprire AdoSuite.dll'(126)").

Neil.

PS: anche uno script semplice come quello sottostante fallisce con lo stesso errore 14001. Potrebbe essere che la vostra DLL abbia bisogno di "vedere" altre 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");

  }

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

 

Salve,

Probabilmente si tratta di un problema legato alla directory dei dati del terminale. Ci sono 3 posizioni utilizzate da MT5:

  • TERMINAL_PATH
  • PERCORSO_DATI_DEL_TERMINALE
  • PERCORSO TERMINAL_COMMONDATA

 

Ciao Alessandro,

Ho copiato tutti i file correttamente, ma ricevo l'errore:


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

quando includo uno di questi include:

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

Se rendo pubblico 'CAdoRecord::Values, ottengo l'inizializzazione fallita durante l'esecuzione del mio script EA.

Potete aiutarmi?

Grazie


Ok, ho risolto. Ho copmilato con 64bot e si avvia senza errori.

 
Come posso usare questa libreria per forzare l'inserimento di NULL in un campo della tabella tramite INSERT con parametri? Per quanto mi sforzi, cerca di inserirmi 0.
 

Potete dirmi quale può essere il problema?

In fase di compilazione genera un avviso:

differito dal qualificatore const, la funzione CAdoRecord::Compare sovrascrive CObject::Compare AdoRecord.mqh 61 54

e l'errore:

'=' - impossibile convertire da puntatore const a puntatore non const AdoRecord.mqh 80 19

 
SergeyVS:

Potete dirmi quale può essere il problema?

In fase di compilazione genera un avviso:

differito dal qualificatore const, la funzione CAdoRecord::Compare sovrascrive CObject::Compare AdoRecord.mqh 61 54

e l'errore:

'=' - impossibile convertire da puntatore const a puntatore non-const AdoRecord.mqh 80 19

nelle righe 62 e 82 del file AdoRecord.mqh, occorre rimuovere "const" dalla dichiarazione e dall'implementazione del metodo CAdoRecord::Compare.

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

82: int CAdoRecord::Compare(const CObject* node, int mode = 0)
I codici sono stati aggiornati.
 

Potreste dirmi come risolvere il seguente problema: AdoSuite.dll' non è la versione a 64 bit. E non vuole funzionare....

Grazie in anticipo!

 
Alex_L:

Potreste dirmi come risolvere il seguente problema: AdoSuite.dll' non è la versione a 64 bit. E non vuole funzionare....

Grazie in anticipo!

Ricompilare il progetto per la piattaforma a 64 bit. Ma ci sono altri problemi, quando si lancia un qualsiasi esempio scrive: invalid EX5 file (8)

 
L'autore del progetto è ancora vivo? Esiste una versione funzionante per x64?
[Eliminato]  

Nel caso in cui possa essere utile a qualcuno, pubblicherò qui il link:

Ponte MT4-ODBC

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

Si tratta di una libreria per il popolare terminale di trading MetaTrader4 (MT4), che consente di accedere a un database relazionale tramite l'interfaccia ODBC. Le caratteristiche principali sono le seguenti.

  • Registrazione dei dati di prezzo
  • Sincronizzazione dello stato degli scambi
  • Esecuzione degli ordini

MT4 ha un proprio linguaggio di programmazione, MQL4, per il trading algoritmico. Sebbene sia facile da imparare, la sua espressività è molto limitata. Chi vuole eseguire algoritmi più sofisticati tende a ricorrere all'esterno della MT4, in genere utilizzando le DLL. Ma la programmazione nativa delle DLL è limitata alla piattaforma Windows, che non è familiare ai programmatori mainstream del recente movimento open source.

MT4-ODBC Bridge (MOB in breve) fornisce un'area di buffer su un RDBMS come MySQL, PostgreSQL, SQLite, ecc. Tale database è abbastanza generale per la maggior parte dei programmatori open source. È possibile accedere al database con il proprio linguaggio familiare, o forse direttamente con SQL.

Si tratta di un ponte fatto in casa tramite DLL tra il terminale MT4 e il driver ODBC di qualsiasi database. Il database può anche essere in-memory come H2, il che consente di scambiare dati tra EA e indicatore, raccogliere tick, altri dati, controllare EA o indicatore. E tutto il resto.