Bibliotecas: AdoSuite v 1.0 - página 3

 

Hola Alexander

gracias por poner a disposición estas bibliotecas. De alguna manera, he intentado instalarlas y hacer que funcionen algunos de tus ejemplos, pero me encuentro con el mismo problema una y otra vez. Cuando intento ejecutar uno de los scripts, obtengo el mensaje de error:

2011.03.11 09:06:22 1 Insertando un registro (GBPUSD,H1) No se puede abrir 'C:\Program Files\MetaTrader 5\MQL5\Libraries\AdoSuite.dll' (14001)

El AdoSuite.dll está en el directorio correcto, .NET 2.0 framework está instalado, he seguido todas sus instrucciones, pero sin embargo siempre me encuentro con este error, incluso con el script más simple donde sólo hago una inclusión de su biblioteca.


¿Alguna idea de dónde puede venir esto? (por cierto el problema no es porque ADOSuite.dll no esté en el directorio: si quito la dll del directorio entonces el error es otro: "No se puede abrir AdoSuite.dll'(126)")

Neil.

PD: incluso un script tan simple como el siguiente falla con el mismo error 14001. ¿Podría ser que tu DLL necesite 'ver' otras DLLs?

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

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

  }

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

 

Hola,

Es probable que esté tratando con un problema relacionado con el directorio de datos de su terminal. Hay 3 ubicaciones que MT5 utiliza:

  • TERMINAL_PATH
  • TERMINAL_DATA_PATH
  • RUTA_DATOS_TERMINAL

 

Hola Alexander

he copiado todos los archivos correctamente, pero me sale el error:


'CAdoRecord::Values' - no se puede llamar a la función miembro protegida DbDataAdapter.mqh 108 23

cuando incluyo uno de estos incluye:

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

Si hago 'CAdoRecord::Values public, obtengo el error de inicialización al ejecutar mi script EA.

¿Me pueden ayudar?

Gracias


Ok, lo he solucionado. Copmilation mith 64bot y arranca sin errores.

 
¿Cómo puedo utilizar esta librería para forzar la inserción de NULL en un campo de una tabla mediante INSERT con parámetros? Por más que lo intento, me intenta insertar 0.
 

¿Puede decirme cuál puede ser el problema?

Al compilar genera una advertencia:

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

y el error

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

 
SergeyVS:

¿Puede decirme cuál puede ser el problema?

Al compilar genera una advertencia:

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

y el error

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

en las líneas 62 y 82 del archivo AdoRecord.mqh, debe eliminar "const" de la declaración y la implementación del método CAdoRecord::Compare.

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

82: int CAdoRecord::Compare(const CObject* node, int mode = 0)
Los códigos se han actualizado.
 

Por favor, ¿podría decirme cómo resolver el siguiente problema: AdoSuite.dll' no es la versión de 64 bits. Y no quiere trabajar....

¡Gracias de antemano!

 
Alex_L:

Por favor, ¿podría decirme cómo resolver el siguiente problema: AdoSuite.dll' no es la versión de 64 bits. Y no quiere trabajar....

Gracias de antemano.

Recompile el proyecto para plataforma de 64 bits. Pero hay otros problemas, al lanzar cualquier ejemplo escribe: archivo EX5 inválido (8)

 
¿Sigue vivo el autor del proyecto? ¿Existe una versión funcional para x64?
[Eliminado]  

Por si a alguien le puede ser útil, pongo aquí el enlace:

Puente MT4-ODBC

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

Se trata de una librería para el popular terminal de trading, MetaTrader4 (MT4), para dar acceso a una base de datos relacional a través de la interfaz ODBC. Las principales características son las siguientes.

  • Registro de datos de precios
  • Sincronización del estado de las operaciones
  • Ejecución de órdenes

MT4 tiene su propio lenguaje de programación, MQL4, para la negociación algorítmica. Aunque es fácil de aprender, su expresividad es muy limitada. Las personas que desean ejecutar algoritmos más sofisticados tienden a recurrir fuera de MT4, normalmente utilizando DLLs. Pero la programación nativa de DLLs está restringida a la plataforma Windows, que no es familiar a los programadores de la corriente principal del reciente movimiento de código abierto.

MT4-ODBC Bridge (MOB en forma abreviada) proporciona un área de búfer en un RDBMS como MySQL, PostgreSQL, SQLite, etc. Tal base de datos es lo suficientemente general para la mayoría del movimiento de código abierto. Dicha base de datos es lo suficientemente general para la mayoría de los programadores de código abierto. Usted puede acceder a la base de datos por su lenguaje familiar, o tal vez directamente por SQL.

Este es un puente casero via DLL entre la terminal MT4 y el driver ODBC de cualquier base de datos. Y la base de datos puede incluso estar en memoria como H2, lo que te permite intercambiar datos entre el EA y el indicador, recoger ticks, otros datos, o controlar el EA o el indicador. Y todo lo demás.

Archivos adjuntos: