Bibliotecas: AdoSuite v 1.0 - página 3

 

Olá, Alexander,

obrigado por disponibilizar essas bibliotecas. De alguma forma, tentei instalá-las e fazer com que alguns de seus exemplos funcionassem, mas tive o mesmo problema várias vezes. Quando tento executar um dos scripts, recebo a mensagem de erro:

2011.03.11 09:06:22 1 Inserindo um registro (GBPUSD,H1) Não é possível abrir 'C:\Program Files\MetaTrader 5\MQL5\Libraries\AdoSuite.dll' (14001)

O AdoSuite.dll está no diretório correto, o .NET 2.0 framework está instalado, segui todas as suas instruções, mas ainda assim sempre encontro esse erro, mesmo com o script mais simples em que faço apenas uma inclusão da sua biblioteca.


Alguma ideia de onde isso possa ocorrer? (A propósito, o problema não é porque o ADOSuite.dll não está no diretório: se eu remover a dll do diretório, o erro será diferente: "Cannot open AdoSuite.dll'(126)")

Neil.

PS: até mesmo um script simples como o que está abaixo falha com o mesmo erro 14001. Será que sua DLL precisa "ver" outras 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");

  }

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

 

Olá,

É provável que você esteja lidando com um problema relacionado ao diretório de dados do seu terminal. Há três locais usados pelo MT5:

  • TERMINAL_PATH
  • TERMINAL_DATA_PATH
  • TERMINAL_COMMONDATA _PATH

 

Olá, Alexander,

Copiei todos os arquivos corretamente, mas recebo o erro:


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

Quando eu incluo um destes includes:

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

Se eu tornar público o 'CAdoRecord::Values', recebo a falha de inicialização ao executar meu script EA.

Você pode me ajudar?

Obrigado


Ok, resolvi o problema. Copmilação com 64bot e ele inicia sem erros.

 
Como posso usar essa biblioteca para forçar a inserção de NULL em um campo de tabela por INSERT com parâmetros? Não importa o quanto eu tente, ele tenta inserir 0 para mim.
 

Você pode me dizer qual pode ser o problema?

Ao compilar, ele gera um aviso:

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

e o erro:

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

 
SergeyVS:

Você pode me dizer qual pode ser o problema?

Ao compilar, ele gera um aviso:

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

e o erro:

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

Nas linhas 62 e 82 do arquivo AdoRecord.mqh, você deve remover "const" da declaração e da implementação do método CAdoRecord::Compare.

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

82: int CAdoRecord::Compare(const CObject* node, int mode = 0)
Os códigos foram atualizados.
 

Você poderia me dizer como resolver o seguinte problema: AdoSuite.dll' não é uma versão de 64 bits. E não quer funcionar....

Desde já, obrigado!

 
Alex_L:

Você poderia me dizer como resolver o seguinte problema: AdoSuite.dll' não é uma versão de 64 bits. E não quer funcionar....

Desde já, obrigado!

Recompile o projeto para a plataforma de 64 bits. Mas há outros problemas: ao iniciar qualquer exemplo, ele escreve: invalid EX5 file (8)

 
O autor do projeto ainda está vivo? Existe uma versão funcional para x64?
[Excluído]  

Caso possa ser útil para alguém, publicarei o link aqui:

Ponte MT4-ODBC

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

Essa é uma biblioteca para o popular terminal de negociação MetaTrader4 (MT4), que dá acesso a um banco de dados relacional por meio da interface ODBC. Os principais recursos são os seguintes.

  • Registro de dados de preços
  • Sincronização do status da negociação
  • Execução de ordens

O MT4 tem sua própria linguagem de programação, MQL4, para negociação algorítmica. Embora seja fácil de aprender, sua expressividade é muito limitada. As pessoas que desejam executar um algoritmo mais sofisticado tendem a recorrer a uma linguagem fora do MT4, normalmente usando DLLs. No entanto, a programação nativa de DLLs é restrita à plataforma Windows, que não é familiar aos programadores convencionais do recente movimento de código aberto.

O MT4-ODBC Bridge (MOB, na sigla em inglês) fornece uma área de buffer para um RDBMS, como MySQL, PostgreSQL, SQLite etc. Esse banco de dados é geral o suficiente para a maioria dos movimentos de código aberto. Esse banco de dados é geral o suficiente para a maioria dos programadores de código aberto. Você pode acessar o banco de dados por meio de sua linguagem familiar ou talvez diretamente pelo SQL.

Essa é uma ponte caseira via DLL entre o terminal MT4 e o driver ODBC de qualquer banco de dados. E o banco de dados pode até mesmo estar na memória, como o H2, o que lhe permite trocar dados entre o EA e o indicador, coletar ticks e outros dados ou controlar o EA ou o indicador. E tudo o mais.

Arquivos anexados: