기고글 토론 "MQL5(MQL4)에서 MySQL 데이터베이스에 액세스하는 방법" - 페이지 6 12345678910111213...30 새 코멘트 yukai xie 2015.04.02 04:55 #51 elugovoy: 안녕하세요, 어떤 버전의 MT5 터미널을 사용 중이신가요? 어떤 버전의 MT5 터미널을 사용 중이신가요? 여기에 첨부된 MQLMySQL 라이브러리의 최신 업데이트를 시도해 보세요. 최신 버전의 MT4를 사용하고 있는데, 하나의 통화만 사용할 때는 괜찮지만 동일한 MT4에서 발신자가 데이터를 보내고 수신자가 데이터를 수신하는 경우 동시에 MT4는 "0x65D6954로 읽은 액세스 위반"이라는 오류를 인쇄합니다. yukai xie 2015.04.02 05:03 #52 elugovoy: 안녕하세요, 어떤 버전의 MT5 터미널을 사용 중이신가요? 어떤 버전의 MT5 터미널을 사용 중이신가요? 여기에 첨부된 MQLMySQL 라이브러리의 최신 업데이트를 시도해 주세요.mqlmysql.dll이 싱글톤 호출, 동일한 MT4가 이 dll을 멀티콜할 수 없습니다. Eugeniy Lugovoy 2015.04.02 13:30 #53 운영 체제의 다른 위치에 libmysql.dll이(가) 있을 수 있습니다. libmysql.dll이 %WINDOWS%\SYSTEM32 폴더에 있는 경우 MT4\MQL4\Experts\Libraries에서 삭제해야 합니다. 에서 삭제해야 하므로 하나의 dll만 사용해야 합니다. 전문가용 어드바이저를 다른 차트에 사용하더라도 하나의 터미널은 라이브러리를 한 번만 첨부하므로 그 이유는 다릅니다. MQLMySQL.dll은 내부 공유 데이터에 액세스하기 위해 뮤텍스를 사용하므로 이 또한 이유가 될 수 없습니다. 가능한 경우 해당 상황을 발생시키는 데 사용하시는 MQL 코드와 MT4의 빌드 번호를 알려주시면 테스트해보고 해결책을 전달해드리도록 하겠습니다. 테스트해보고 해결책을 전달하도록 하겠습니다. DLL 문자열 기능은 Build 필터 표시기 코딩 도움말 yukai xie 2015.04.08 08:04 #54 elugovoy: 운영 체제의 다른 위치에 libmysql.dll이(가) 있을 수 있습니다. libmysql.dll이 %WINDOWS%\SYSTEM32 폴더에 있는 경우 MT4\MQL4\Experts\Libraries에서 삭제해야 합니다. 에서 삭제해야 하므로 하나의 dll만 사용해야 합니다. 전문가용 어드바이저를 다른 차트에 사용하더라도 하나의 터미널은 라이브러리를 한 번만 첨부하므로 그 이유는 다릅니다. MQLMySQL.dll은 내부 공유 데이터에 액세스하기 위해 뮤텍스를 사용하므로 이 또한 이유가 될 수 없습니다. 가능한 경우 해당 상황을 발생시키는 데 사용하시는 MQL 코드와 MT4의 빌드 번호를 알려주시면 테스트해보고 해결책을 전달해드리도록 하겠습니다. 테스트해보고 해결책을 전달하도록 하겠습니다. MQL 코드는 mt4 데이터를 mysql 테이블에 수집하는 코드인데, 하나의 mt4에서 하나만 사용하면 괜찮고, 두 개의 mt4에서 4개 이상 사용하면 Access violation read 에 0x00000002로 ... \MQLMySQL.dll' 파일: sendData.mq4 11 kb yukai xie 2015.04.08 09:02 #55 elugovoy: 운영 체제의 다른 위치에 libmysql.dll이(가) 있을 수 있습니다. libmysql.dll이 %WINDOWS%\SYSTEM32 폴더에 있는 경우 MT4\MQL4\Experts\Libraries에서 삭제해야 합니다. 에서 삭제해야 하므로 하나의 dll만 사용해야 합니다. 전문가용 어드바이저를 다른 차트에 사용하더라도 하나의 터미널은 라이브러리를 한 번만 첨부하므로 그 이유는 다릅니다. MQLMySQL.dll은 내부 공유 데이터에 액세스하기 위해 뮤텍스를 사용하므로 이 또한 이유가 될 수 없습니다. 가능한 경우 해당 상황을 발생시키는 데 사용하시는 MQL 코드와 MT4의 빌드 번호를 알려주시면 테스트해보고 해결책을 전달해드리도록 하겠습니다. 테스트해보고 해결책을 전달하도록 하겠습니다.mysql 메모리 테이블을 사용했는데 문제가 있나요? 엔진=메모리 yukai xie 2015.04.08 09:37 #56 yukaixie: mysql 메모리 테이블을 사용했는데 문제가 있나요? 엔진=메모리 테이블 유형 엔진을 메모리에서 Innodb로 변경했는데 문제가 여전히 존재합니다. 2015.04.08 15:31:59.296 액세스 위반 읽기 0x00000004에서 '. .MQLMySQL.dll' yukai xie 2015.04.08 09:47 #57 yukaixie: MQL 코드는 mt4 데이터를 mysql 테이블에 수집하고, 하나의 mt4에서 하나만 사용하면 괜찮고, 두 개의 mt4에서 4 개 이상을 사용하면 액세스 위반 읽기를 인쇄합니다. 에 0x00000002로 ... \MQLMySQL.dll' MySqlDisconnect(DB); 데이터베이스 연결 해제가 필요하지만 여전히 문제가 해결되지 않습니다. Eugeniy Lugovoy 2015.04.08 23:42 #58 EA/스크립트의 소스 코드를 제공할 수 있나요? yukai xie 2015.04.09 03:05 #59 elugovoy: EA/스크립트의 소스 코드를 제공해 주실 수 있나요? MQL CODE는 mt4 데이터를 mysql 테이블에 수집하고 있으며, 하나의 mt4에서 하나만 사용하면 괜찮고, 두 개의 mt4에서 4 개 이상을 사용하면 액세스 위반 읽기를 인쇄합니다. 에 0x00000002로 ... \MQLMySQL.dll' 추가 파일senddata.mq4 11 kb sendata.mq4는 제가 업로드한 EA 소스 코드입니다. yukai xie 2015.04.09 05:11 #60 elugovoy: EA/스크립트의 소스 코드를 제공할 수 있나요? //+------------------------------------------------------------------+ //|& nbsp; 데이터베이스 운영.mq4 | //| Copyright 2015, MetaQuotes Software Corp. //| & nbsp https://www.mql5.com | //+------------------------------------------------------------------+ #재산권 저작권 "Copyright 2015, MetaQuotes Software Corp." #속성 링크 "https://www.mql5.com" #속성 버전 "1.00" #속성 엄격 입력 문자열 Host = "localhost"; //Server IP, 예: 192.168.1.210, localhost 입력 문자열 User = "root"; //mysql 데이터베이스 로그인 사용자 이름 입력 문자열 Password = "root"; //mysql 데이터베이스 비밀번호 입력 문자열 Database = "test"; //Mysql 데이터베이스 이름 입력 문자열 Socket = "0"; // 데이터베이스 자격 증명 입력 int Port = 3306; // mysql 데이터베이스 포트 번호 입력 int ClientFlag = 0; // 데이터베이스 자격 증명 int DB = 0; // 데이터베이스 식별자 //--- int timeSeconds = 1; // 타이머 #include <MQLMySQL.mqh string Query; int i,Cursor,Rector int i,Cursor,Rows; //인클루드 <MQLMySQL.mqh> 문자열 Query. //+------------------------------------------------------------------+ //| 전문가 초기화 함수 nbsp; | //+------------------------------------------------------------------+ int OnInit() OnInit() return(INIT_SUCCEED); } //+------------------------------------------------------------------+ //| 전문가 초기화 함수 || //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| 전문가 틱 함수 nbsp; | //+------------------------------------------------------------------+ void OnTick() { if( IsExpertEnabled() && IsConnected() && AccountNumber() > 0 ) { int account = AccountNumber(); 문자열 symbol = Symbol(); //int syDB = 0; // 데이터베이스 식별자//--- DB = cMySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag); //int syDB = 0; // 데이터베이스 식별자//--- //Alert(DB); 더블 스프레드 = (매도 - 매수); //Alert(symbol). Query = "SELECT * FROM " + symbol + " where AccountNumber = " + (문자열)AccountNumber(); //Print(Query); Cursor = MySqlCursorOpen(DB, Query); if (Cursor >= 0) { Rows = MySqlCursorRows(Cursor); if (Cursor >= 0) { Rows = MySqlCursorRows(Cursor) int dataRows = Rows; //Alert(dataRows); if( dataRows > 0 ) { Query = "update " + 기호 + " set Bid = " + (문자열)Bid + ", Ask = " + ( 문자열)Ask + ", Spread = " + DoubleToStr(spread, Digits) + ", Time = '" + TimeToString(TimeLocal(), TIME_DATE|TIME_SECONDS ) + "' 여기서 계정번호 = " + (문자열)계정; // + "' 및 기호 = '" + 기호 + "'". MySqlExecute(DB, Query); } else if( dataRows == 0 ) { Query = "CREATE TABLE IF NOT EXISTS " + symbol + " (id int NOT NULL AUTO_. INCREMENT PRIMARY KEY, AccountNumber int, " + "기호 문자(20), 입찰가 2배, 매도 2배, 스프레드 2배," + "메모 문자(50), " + "시간 날짜 시간) 엔진=메모리 기본 문자 집합=utf8 "; MySqlExecute(DB, Query); Query = "INSERT INTO " + 기호 + "(계정번호, 기호, 매수, 매도, 스프레드. Memo, Time) VALUES (" + (문자열)계정 + ", '" + 기호 + "', "+(문자열)입찰가+","+ (문자열)질문 + ", " + DoubleToStr(스프레드, 숫자) + ", '" + (문자열)AccountCompany() + "', \'"+TimeToString(TimeLocal(), TIME_DATE|TIME_SECONDS)+"\')"""; if(MySqlExecute(DB, Query) ! = true ) { //쿼리 = "`데이터_테이블`이 존재하면 테이블 삭제"; //MySqlExecute(DB, Query); Query = "CREATE TABLE IF NOT EXISTS " + symbol + "(id int NOT NULL AUTO_INCREMENT PRIMARY KEY, AccountNumber int, " + "기호 문자(20), 입찰가 2배, 매도 2배, 스프레드 double," + "메모 문자(50), " + "시간 날짜 시간) 엔진=메모리 기본 문자 집합= utf8 "; MySqlExecute(DB, Query); } } MySqlCursorClose(Cursor); // 절대 커서 닫는 것을 잊지 마세요 !!!! } } } //+------------------------------------------------------------------+ 3개의 DB를 연결했는데 동일한 DB를 사용했는데, 새로운 데이터베이스 CRUD를 위해 새로운 DB를 생성해야 하나요? 自动交易和策略测试 www.mql5.com MQL5:MetaTrader 5客户端内置的交易策略语言。语言允许编写您自己的自动交易系统,技术指标,脚本和函数程序库 SymbolInfoDouble returning le-05 포럼을 어지럽히 지 않도록 expert advisor - miscellaneous 12345678910111213...30 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
안녕하세요, 어떤 버전의 MT5 터미널을 사용 중이신가요?
어떤 버전의 MT5 터미널을 사용 중이신가요?
여기에 첨부된 MQLMySQL 라이브러리의 최신 업데이트를 시도해 보세요.
안녕하세요, 어떤 버전의 MT5 터미널을 사용 중이신가요?
어떤 버전의 MT5 터미널을 사용 중이신가요?
여기에 첨부된 MQLMySQL 라이브러리의 최신 업데이트를 시도해 주세요.
운영 체제의 다른 위치에 libmysql.dll이(가) 있을 수 있습니다.
libmysql.dll이 %WINDOWS%\SYSTEM32 폴더에 있는 경우 MT4\MQL4\Experts\Libraries에서 삭제해야 합니다.
에서 삭제해야 하므로 하나의 dll만 사용해야 합니다.
전문가용 어드바이저를 다른 차트에 사용하더라도 하나의 터미널은 라이브러리를 한 번만 첨부하므로 그 이유는 다릅니다.
MQLMySQL.dll은 내부 공유 데이터에 액세스하기 위해 뮤텍스를 사용하므로 이 또한 이유가 될 수 없습니다.
가능한 경우 해당 상황을 발생시키는 데 사용하시는 MQL 코드와 MT4의 빌드 번호를 알려주시면 테스트해보고 해결책을 전달해드리도록 하겠습니다.
테스트해보고 해결책을 전달하도록 하겠습니다.
운영 체제의 다른 위치에 libmysql.dll이(가) 있을 수 있습니다.
libmysql.dll이 %WINDOWS%\SYSTEM32 폴더에 있는 경우 MT4\MQL4\Experts\Libraries에서 삭제해야 합니다.
에서 삭제해야 하므로 하나의 dll만 사용해야 합니다.
전문가용 어드바이저를 다른 차트에 사용하더라도 하나의 터미널은 라이브러리를 한 번만 첨부하므로 그 이유는 다릅니다.
MQLMySQL.dll은 내부 공유 데이터에 액세스하기 위해 뮤텍스를 사용하므로 이 또한 이유가 될 수 없습니다.
가능한 경우 해당 상황을 발생시키는 데 사용하시는 MQL 코드와 MT4의 빌드 번호를 알려주시면 테스트해보고 해결책을 전달해드리도록 하겠습니다.
테스트해보고 해결책을 전달하도록 하겠습니다.
MQL 코드는 mt4 데이터를 mysql 테이블에 수집하는 코드인데, 하나의 mt4에서 하나만 사용하면 괜찮고, 두 개의 mt4에서 4개 이상 사용하면 Access violation read 에 0x00000002로 ... \MQLMySQL.dll'
운영 체제의 다른 위치에 libmysql.dll이(가) 있을 수 있습니다.
libmysql.dll이 %WINDOWS%\SYSTEM32 폴더에 있는 경우 MT4\MQL4\Experts\Libraries에서 삭제해야 합니다.
에서 삭제해야 하므로 하나의 dll만 사용해야 합니다.
전문가용 어드바이저를 다른 차트에 사용하더라도 하나의 터미널은 라이브러리를 한 번만 첨부하므로 그 이유는 다릅니다.
MQLMySQL.dll은 내부 공유 데이터에 액세스하기 위해 뮤텍스를 사용하므로 이 또한 이유가 될 수 없습니다.
가능한 경우 해당 상황을 발생시키는 데 사용하시는 MQL 코드와 MT4의 빌드 번호를 알려주시면 테스트해보고 해결책을 전달해드리도록 하겠습니다.
테스트해보고 해결책을 전달하도록 하겠습니다.
mysql 메모리 테이블을 사용했는데 문제가 있나요? 엔진=메모리
MQL 코드는 mt4 데이터를 mysql 테이블에 수집하고, 하나의 mt4에서 하나만 사용하면 괜찮고, 두 개의 mt4에서 4 개 이상을 사용하면 액세스 위반 읽기를 인쇄합니다. 에 0x00000002로 ... \MQLMySQL.dll'
MySqlDisconnect(DB);
데이터베이스 연결 해제가 필요하지만 여전히 문제가 해결되지 않습니다.
EA/스크립트의 소스 코드를 제공해 주실 수 있나요?
MQL CODE는 mt4 데이터를 mysql 테이블에 수집하고 있으며, 하나의 mt4에서 하나만 사용하면 괜찮고, 두 개의 mt4에서 4 개 이상을 사용하면 액세스 위반 읽기를 인쇄합니다. 에 0x00000002로 ... \MQLMySQL.dll'
senddata.mq4 11 kb
sendata.mq4는 제가 업로드한 EA 소스 코드입니다.
EA/스크립트의 소스 코드를 제공할 수 있나요?
3개의 DB를 연결했는데 동일한 DB를 사용했는데, 새로운 데이터베이스 CRUD를 위해 새로운 DB를 생성해야 하나요?