기고글 토론 "MQL5(MQL4)에서 MySQL 데이터베이스에 액세스하는 방법" - 페이지 26

 
Ana Fonseca:
DLL을 어느 폴더에 저장하나요?
다음은 전체 DLL 업데이트 패키지입니다: https://github.com/elugovoy/MQLMySQL-Project
메타트레이더 폴더 구조에 컴파일된 dll이 포함되어 있습니다.
 

안녕하세요 Eugeniy,

64 버전의 MQLMySQL.dll을 제공해 주시겠습니까? 로드되면 다음과 같은 메시지가 표시됩니다.

'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' is not 64-bit version
Cannot load 'C:\Users\ddy\AppData\Roaming\MetaQuotes\Terminal\A82A50F46FD795A059C2382724C7195E\MQL5\libraries\MQLMySQL.dll' [193]
 
Xiaowei Yan:

안녕하세요 Eugeniy,

64 버전의 MQLMySQL.dll을 제공해 주시겠습니까? 로드되면 다음과 같은 메시지가 표시됩니다.

예, 컴파일된 x64 DLL은 GitHub에서 다운로드할 수 있습니다( https://github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release).

프로젝트의 전체 리포지토리: https: //github.com/elugovoy/MQLMySQL-Project

Regards,

Eugene

elugovoy/MQLMySQL-Project
elugovoy/MQLMySQL-Project
  • elugovoy
  • github.com
MQL & DLL libraries for working with MySQL database - elugovoy/MQLMySQL-Project
 

안녕하세요 유제니입니다,

파일에서 설정을 읽는 코드를 변경하는 방법이 있는지 궁금합니다.

// INI 파일에서 데이터베이스 자격 증명 읽기
 Host = ReadIni(INI, "MYSQL", "Host");
 User = ReadIni(INI, "MYSQL", "User");
 Password = ReadIni(INI, "MYSQL", "Password");
 Database = ReadIni(INI, "MYSQL", "Database");
 Port     = (int)StringToInteger(ReadIni(INI, "MYSQL", "Port"));
 Socket   = ReadIni(INI, "MYSQL", "Socket");
 ClientFlag = CLIENT_MULTI_STATEMENTS; 

대신이 할당을 사용하는 방법이 있는지 궁금합니다.

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306
Socket   = 0
ClientFlag = CLIENT_MULTI_STATEMENTS; 

액세스 위반 읽기 0x00000000 MQLMySQL.dll로 오류 메시지가 표시되므로 가능합니까?

가능한 해결책이 있나요?

 
heere:

안녕하세요 Eugeniy,

파일에서 설정을 읽는 코드를 변경하는 방법이 있는지 궁금합니다.

대신 이 할당을 사용하는 방법이 있는지 궁금합니다.

액세스 위반 읽기 0x00000000 MQLMySQL.dll로 오류 메시지가 표시되므로 가능합니까?

가능한 해결책이 있나요?

Host = "127.0.0.1";
User = "mt4";
Password = "mt4";
Database ="mt4";
Port     = 3306;
Socket   = "0"; // 이 변수는 문자열이어야 하며, int가 아니어야 합니다.
ClientFlag = CLIENT_MULTI_STATEMENTS; 

어쩌면 이것이 도움이 될 것입니다.

 
MARCOS DALCIN ALVES DINIZ:

OpenSSL 버전을 업데이트한 후에 작동했습니다. 들어주셔서 감사합니다.

Hi~

저도 [126]의 오류 질문이 있었습니다:


'C:\사용자\프로그래머01\데스크탑\MyMT5\MQL5\라이브러리\MQLMySQL.dll' 로드할 수 없음 [126]

'cMySqlVersion'을 호출할 수 없음, 'MQLMySQL.dll'이 로드되지 않음

해결되지 않은 가져오기 함수 호출


OpenSSL 버전 업데이트 후 정상이라고 MARCOS멘션함

OpenSSL 버전 업데이트는 어떻게 해야 하나요?

감사합니다! ~



추신

이 분야에 익숙하지 않아서

다시 묻고 싶습니다.

라이브러리 폴더에 3개의 dll 파일이 있는 것을 확인했습니다.

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


MySQL 소프트웨어를 설치했습니다.

이 dll 파일이 ..\Program Files\MySQL 아래의 경로에서 복사되었나요?

그렇다면 어느 폴더에서 복사한 것인가요?


 
zboo:

안녕하세요~

저도 [126]의 오류 질문이 있었습니다:


'C:\사용자\프로그래머01\데스크톱\MyMT5\MQL5\라이브러리\MQLMySQL.dll' 로드할 수 없음 [126]

'cMySqlVersion'을 호출할 수 없음, 'MQLMySQL.dll'이 로드되지 않음

해결되지 않은 가져오기 함수 호출


OpenSSL 버전 업데이트 후 정상이라고 언급됨

OpenSSL 버전을 업데이트하려면 어떻게 해야 하나요?

감사합니다! ~



PS.

이 분야에 익숙하지 않기 때문에

다시 묻고 싶습니다.

라이브러리 폴더에 3개의 dll 파일이 있는 것을 확인했습니다.

1.libcrypto-1_1-x64.dll

2.libmysql.dll

3.libssl-1_1-x64.dll


MySQL 소프트웨어를 설치했습니다.

이 dll 파일이 ..\Program Files\MySQL 아래의 경로에서 복사된 파일인가요?

그렇다면 어느 폴더에서 복사한 것인가요?


누구든지 같은 상황을 해결하는 데 도움을 줄 수 있나요?

감사합니다~~~~

 
Eugeniy Lugovoy:

이것이 도움이 될 수 있습니다.

정말 감사합니다. 문제가 해결되었습니다.

 

@Eugeniy Lugovoy

안녕하세요, Eugeniy. 기사 작성해 주셔서 감사합니다. 제게 조언해 주시겠습니까? 다음과 같은 문제가 발생했습니다. 테스터가 아닌 EA를 실행하면 dll이 정상적으로 작동합니다. 테스터에서 다음과 같은 오류가 발생합니다: "'C:\사용자\...\MQL5\라이브러리\MQLMySQL.dll'[126]을 로드할 수 없습니다.". 이로 인해 과거 데이터에 대해 EA를 테스트할 수 없습니다.

문제 상황: 저는 데이터베이스를 사용하여 트레이딩을 위한 입력 매개변수를 로드합니다. 또한 거래 후 필요한 정보를 저장합니다. 이 오류는 테스터에서만 발생합니다.


내가 시도한 것:

- 속성 테스터 라이브러리 "MQLMySQL.dll"을 추가합니다.

- dll 경로 전체를 별도로 작성합니다.

- 로드되지 않은 파일이 폴더에 있는지 다시 확인했습니다.

파일이 폴더에 있지만 로드할 수 없습니다. 어디를 더 파볼 수 있는지 알려주세요.

 

제가 올바른 연결 문자열을 사용하고 있는지 확인해 주세요.

호스트에 "127.0.0.1"을 사용하고 있습니다.

사용자, 패스, 데이터베이스를 따옴표로 묶어 사용하고 있습니다(3개의 별도 매개변수).

그런 다음 소켓에 NULL을, 클라이언트 플래그에 0을 넣습니다.

(내 시스템은 Win 10입니다.)


삽입을 실행하려고 할 때 데이터베이스 연결이 없다는 오류가 발생합니다.