유진, 기사 감사합니다. DBMS에 대한 흥미로운 자료입니다.
나는 그런 문제가 있습니다.
메타트레이더5, x64, 975 빌드가 있습니다.
"MySQL-001"스크립트를 실행할 때 오류가 발생합니다:
RL 1 12:41:22.443 MySQL-001 'C:\Program Files\MetaTrader5\MQL5\libraries\MQLMySQL.dll' is not 64-bit version PG 1 12:41:22.474 MySQL-001 (AUDCAD.e,M1) Cannot load 'C:\Program Files\MetaTrader5\MQL5\libraries\MQLMySQL.dll' DK 2 12:41:23.677 MySQL-001 (AUDCAD.e,M1) Cannot call 'cMySqlVersion', '..\libraries\MQLMySQL.dll' is not loaded ID 2 12:41:23.677 MySQL-001 (AUDCAD.e,M1) unresolved import function call
그 이유는 내가 알기로 시스템이 64 비트 라이브러리를로드하려고하기 때문입니다 ...
메타트레이더 5용 라이브러리 버전 - x64
- 프로젝트 MQLMySQL.DLL이 x64용으로 재컴파일되었습니다(소스는 수정되지 않음).
- 표준 LibMySQL.DLL은 안정적인 최신 MySQL 배포판 v5.6.21 x64에서 가져옵니다.
실제로 MT5 x64에서 프로젝트를 실행하려고 시도한 경우 MQL5\Libraries 디렉터리의 내용만 교체하면 됩니다. MQL 프로그램의 소스 코드는 수정하거나 다시 컴파일할 필요가 없습니다.
x64 사용자에 대해 깜빡 잊고 있었는데, Denis(denkir)의 지적에 다시 한 번 감사드립니다.
읽고 울었습니다. 저자에 대해 악감정은 없습니다. 그가 비판을 적절하게 대했으면 좋겠어요. 어쨌든
1. 그것 없이도 모든 것이 잘 작동한다면 왜 다른 DLL의 형태로 래퍼를 작성합니까? MQL 언어는 종종 갈퀴로 변하는 목발을 작성할 수있는 개발 단계에 있지 않습니다.
2. 이 모든 작업의 결과로 필요한 모든 것을 갖춘 클래스가 작성되지 않았고 저자가 언급 한 전임자의 단점을 제거하는 클래스가 작성되지 않은 이유는 무엇입니까?
3. 특히 이것을 주목하고 싶습니다:
string SQL; SQL = "INSERT INTO EURUSD(Ask,Bid) VALUES (1.3601,1.3632);"; SQL = SQL + "INSERT INTO EURUSD(Ask,Bid) VALUES (1.3621,1.3643);"; SQL = SQL + "INSERT INTO EURUSD(Ask,Bid) VALUES (1.3605,1.3629);";
사실, 모든 것이 훨씬 간단합니다:
string SQL="INSERT INTO EURUSD(Ask,Bid) VALUES (1.3601,1.3632),(1.3621,1.3643),(1.3605,1.3629);";
일반적으로이 기사는 "어떻게해야하는지보고 배우십시오"대신 "내가 할 수있는 일을보세요!"라는 스타일로 작성되었습니다.
읽고 울었습니다. 저자에 대해 악감정은 없습니다. 그가 비판을 적절하게 대했으면 좋겠어요. 어쨌든
1. 그것 없이도 모든 것이 잘 작동한다면 왜 다른 DLL의 형태로 래퍼를 작성합니까? MQL 언어는 종종 갈퀴로 변하는 목발을 작성할 수있는 개발 단계에 있지 않습니다.
2. 이 모든 작업의 결과로 필요한 모든 것을 갖춘 클래스가 작성되지 않았고 저자가 언급 한 전임자의 단점을 제거하는 클래스가 작성되지 않은 이유는 무엇입니까?
3. 특히 이것을 주목하고 싶습니다:
사실, 모든 것이 훨씬 간단합니다:
일반적으로이 기사는 "어떻게해야하는지보고 배우십시오"대신 "내가 할 수있는 일을보세요!"라는 스타일로 작성되었습니다.
순서대로 대답하겠습니다.
이 프로젝트는 MQL 언어가 현재 개발 단계에 있지 않았고 MQL4에는 클래스도 구조도 없던 꽤 오래 전에 시작되었다고 말해야 합니다.
그리고 소프트웨어 솔루션은 MQL4에서 MQL5로 전환하는 데 필요한 최소한의 비용으로 MQL4와 MQL5 모두에서 작동해야 했습니다(필요한 경우). 프로젝트는 최근까지 마무리 중이었습니다.
그래서 프로젝트가 클래스로 구현되지 않았습니다. 클래스를 원하시나요? 문제없습니다 - 작성하세요! 아무도 당신을 금지하지 않습니다.
이제 하나가 아닌 3개의 INSERT에 대해 말씀드리겠습니다. 제가 이렇게 작성한 이유는 다음과 같은 이유 때문입니다(저작권이 있습니다):
- 일반적으로 허용되는 표준 SQL'92, SQL'2000 (귀하의 변형-구문의 특성 정확히 MySQL 대량 삽입)을 위반하지 않습니다;
- 이 분야의 초보 프로그래머가 읽고 이해하는 것이 더 쉬울 것입니다;
- 하나가 아닌 정확히 3개의 INSERT 명령어 실행 데모.
다중 문에는 모든 DML/DDL/DCL 연산이 포함될 수 있으며, 예제는 하나의 테이블에 대한 INSERT 연산으로 제한됩니다.
추신: 이 글은 "가져와서 사용" 스타일로 작성되었습니다.
감사합니다! 귀하의 솔루션을 심도있게 검토해 보겠습니다. MQL에만 의존하는 것보다 더 안정적 일 수 있습니다.
참고로 얼마 전에 MT4 빌드 600+를 위해 작성한 MQL4 전용 브리지가 있습니다: https://www.mql5.com/ko/code/11114

- 투표: 12
- 2014.02.10
- Sergey
- www.mql5.com
감사합니다! MQL에만 의존하는 것보다 더 안정적일 수 있는 솔루션을 심도 있게 검토해 보겠습니다.
참고로 얼마 전에 MT4 빌드 600+를 위해 작성한 MQL4 전용 브리지가 있습니다: https://www.mql5.com/ko/code/11114
이 글을 읽어주셔서 감사합니다. 저도(https://www.mql5.com/ko/code/11114)를 확인했는데, 오래 전에 (MT4 빌드 600 이전) 그런 솔루션을 찾았고 MQL과 MySQL을 친숙하게 만드는 아이디어가 마음에 들었습니다. 그러나 제가 사용하고 싶지 않은 한 가지는 데이터베이스에서 데이터를 가져 오는 배열입니다. 그래서 MT4와 MT5에서 사용할 수 있도록 이 솔루션을 만들었습니다.
또한 이 글에 x64 기반 프로젝트를 추가하는 것을 깜빡했는데, 토론에서 바로 다운로드할 수 있습니다. 소스는 아무것도 변경되지 않았으며 DLL만 x64용으로 다시 컴파일되었습니다.
행운을 빕니다,
Eugene

- 투표: 12
- 2014.02.10
- Sergey
- www.mql5.com
새로운 기고글 MQL5(MQL4)에서 MySQL 데이터베이스에 액세스하는 방법 가 게재되었습니다:
이 문서에서는 MQL과 MySQL 데이터베이스 간의 인터페이스 개발에 대해 설명합니다. 기존의 실용적인 솔루션에 대해 설명하고 데이터베이스 작업을 위한 라이브러리를 보다 편리하게 구현할 수 있는 방법을 제공합니다. 이 문서에는 기능, 인터페이스 구조, 예제 및 MySQL 사용 시 특정 기능에 대한 자세한 설명이 포함되어 있습니다. 소프트웨어 솔루션의 경우 문서 첨부 파일에는 동적 라이브러리 파일, MQL4 및 MQL5 언어의 설명서 및 스크립트 예가 포함됩니다.
아래에서 논의한 MQL <-> MySql interfaced 는 Oracle PL/SQL, MS SQL T-SQL, AdoDB - 커서 사용에 사용되는 일반적인 접근 방식을 기반으로 합니다. 이 인터페이스는 프로그래밍과 유지관리의 용이성과 최소한의 구성요소를 목표로 개발되었습니다. 표준 라이브러리 libmysql.dll의 DLL wrapper로 구현되고 인터페이스 함수 집합은 .mqh 파일로 구현됩니다.
MQL 프로그램을 통해 MetaTrader 터미널 간의 상호 작용은 다음 구성 요소의 도움을 받아 구현할 수 있습니다.
작성자: Eugeniy Lugovoy