라이브러리: AdoSuite v 1.0 - 페이지 3

 

안녕하세요 알렉산더,

이 라이브러리를 제공해 주셔서 감사합니다. 어떻게든 라이브러리를 설치하고 샘플 중 일부를 작동시키려고 했지만 같은 문제가 계속 발생했습니다. 스크립트 중 하나를 실행하려고 하면 오류 메시지가 표시됩니다:

2011.03.11 09:06:22 1 레코드 삽입 중 (GBPUSD,H1) 'C:\Program Files\MetaTrader 5\MQL5\Libraries\AdoSuite.dll'(14001)을 열 수 없습니다.

AdoSuite.dll은 올바른 디렉토리에 있고 .NET 2.0 프레임 워크가 설치되어 있으며 모든 지침을 따랐지만 라이브러리 포함 만 수행하는 가장 간단한 스크립트에서도 항상이 오류가 발생합니다.


이 오류가 어디서 발생하는지 아시는 분 있나요? (그런데 이 문제는 ADOSuite.dll이 디렉토리에 없기 때문이 아닙니다. 디렉터리에서 dll을 제거하면 다른 오류가 발생합니다: "AdoSuite.dll '(126)'을(를) 열 수 없습니다.")

Neil.

추신: 아래처럼 간단한 스크립트도 동일한 14001 오류로 실패합니다. DLL이 다른 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");

  }

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

 

안녕하세요,

단말기의 데이터 디렉토리와 관련된 문제가 발생한 것 같습니다. MT5가 사용하는 위치는 세 가지입니다:

  • 터미널_경로
  • 터미널_데이터_경로
  • 터미널_데이터_경로

 

안녕하세요 알렉산더,

모든 파일을 올바르게 복사했지만 오류가 발생합니다:


'CAdoRecord::Values' - 보호된 멤버 함수 DbDataAdapter.mqh 108 23을 호출할 수 없습니다.

이 중 하나를 포함 할 때

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

'CAdoRecord::Values'를 공개로 설정하면 EA 스크립트를 실행하는 데 초기화에 실패합니다.

도와주실 수 있나요?

Thanks


좋아, 나는 그것을 해결했다. 64bot을 복사하면 오류없이 시작됩니다.

 
이 라이브러리를 사용하여 매개 변수가 있는 INSERT로 테이블 필드에 NULL을 강제로 삽입하려면 어떻게 해야 하나요? 아무리 노력해도 0을 삽입하려고 합니다.
 

문제가 무엇인지 알려주실 수 있나요?

컴파일할 때 경고가 생성됩니다:

const 한정자에 의해 다름, CAdoRecord::Compare 함수가 CObject::Compare AdoRecord.mqh 61 54를 재정의합니다.

와 오류가 발생합니다:

'=' - const 포인터에서 비-const 포인터로 변환할 수 없음 AdoRecord.mqh 80 19

 
SergeyVS:

문제가 무엇인지 알려주실 수 있나요?

컴파일할 때 경고가 생성됩니다:

const 한정자에 의해 다름, CAdoRecord::Compare 함수가 CObject::Compare AdoRecord.mqh 61 54를 재정의합니다.

와 오류가 발생합니다:

'=' - const 포인터에서 비-const 포인터로 변환할 수 없음 AdoRecord.mqh 80 19

AdoRecord.mqh 파일의 62줄과 82줄에서 CAdoRecord::Compare 메서드의 선언과 구현에서 "const"를 제거해야 합니다.

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

82: int CAdoRecord::Compare(const CObject* node, int mode = 0)
코드가 업데이트되었습니다.
 

다음 문제를 해결하는 방법을 알려주시겠습니까: 'AdoSuite.dll'이 64비트 버전이 아닙니다. 그리고 작동하고 싶지 않습니다....

미리 감사드립니다!

 
Alex_L:

다음 문제를 해결하는 방법을 알려주시겠습니까: 'AdoSuite.dll'이 64비트 버전이 아닙니다. 그리고 작동하고 싶지 않습니다....

미리 감사드립니다!

64비트 플랫폼용으로 프로젝트를 다시 컴파일하세요. 그러나 예제를 실행할 때 다음과 같은 다른 문제가 있습니다: 잘못된 EX5 파일 (8)

 
프로젝트 작성자가 아직 살아 있나요? x64용 작동 버전이 있나요?
[삭제]  

누군가에게 도움이 될 수 있으므로 여기에 링크를 게시하겠습니다:

MT4-ODBC 브리지

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

인기 트레이딩 터미널인 메타트레이더4(MT4)에서 ODBC 인터페이스를 통해 관계형 데이터베이스에 액세스할 수 있는 라이브러리입니다. 주요 기능은 다음과 같습니다.

  • 가격 데이터 기록
  • 거래 상태 동기화
  • 주문 체결

MT4에는 알고리즘 트레이딩을 위한 자체 프로그래밍 언어인 MQL4가 있습니다. 배우기는 쉽지만 표현력이 매우 제한적입니다. 보다 정교한 알고리즘을 실행하려는 사람들은 일반적으로 DLL을 사용하여 MT4 외부에 의존하는 경향이 있습니다. 그러나 DLL의 기본 프로그래밍은 Windows 플랫폼으로 제한되어 있어 최근 오픈 소스 운동의 주류 프로그래머에게는 익숙하지 않습니다.

MT4-ODBC 브리지(줄여서 MOB)는 MySQL, PostgreSQL, SQLite 등과 같은 RDBMS에 버퍼 영역을 제공합니다. 이러한 데이터베이스는 대부분의 오픈 소스 움직임에 충분히 일반적입니다. 이러한 데이터베이스는 대부분의 오픈 소스 프로그래머에게 충분히 일반적입니다. 익숙한 언어로 데이터베이스에 액세스하거나 SQL로 직접 액세스할 수 있습니다.

이것은 MT4 터미널과 모든 데이터베이스의 ODBC 드라이버 사이에 DLL을 통해 직접 만든 다리입니다. 또한 데이터베이스는 H2처럼 인메모리가 될 수도 있으므로 전문가 조언자와 보조지표 간에 데이터를 교환하고, 틱, 기타 데이터를 수집하거나 전문가 조언자 또는 보조지표를 제어할 수 있습니다. 그리고 다른 모든 것.

파일: