記事"MQL5 (MQL4)から MySQL データベースにアクセスする方法"についてのディスカッション - ページ 3 12345678910...30 新しいコメント Matvey Alekseev 2015.01.04 04:18 #21 記事をありがとうございました!あなたが気にしない場合は、ログを見てください、私は何も理解することはできません....どのように多くのソリューションは、どこでも同じことを試していませんでした。MySQLサーバ:サーバー:TCP/IP経由localhostサーバーのバージョン:5.6.10プロトコルバージョン: 10ユーザー: root@localhostMySQL エンコーディング:UTF-8 Unicode (utf8 ) InnoDBデータベース、UTF8-General-CiMT5ビルド1035OS: Win8.1 x64 ファイル: log_.txt 19 kb Eugeniy Lugovoy 2015.01.05 07:33 #22 はじめまして。あなたのオペレーティング・システムはx64ですが、64ビット版のDLLを使用していますか?DLLはディスカッションの投稿に添付されています(mqlmysql_for_mql5_x64.zip1264 kb)。その記事にはx86オペレーティング・システム用のライブラリしかありませんでした。ところで、アーカイブにあるテスト・サンプルは動きますか?<<少し後>>。Tester file added: librariesMQLMySQL.dll.89626バイトがロードされました。x64ファイルMQLMySQL.dllの 元のサイズは89626ではなく89600バイトです。どのアンチウイルスを使用していますか? Ingvar Engelbrecht 2015.01.09 23:00 #23 こんにちは。コンセプトが気に入った。大きな助けになるはずです。でも、ちょっと問題があるんだ。私は64ビットを使用しており、それらをダウンロードし、どのように動作するかを確認するためにテストスクリプトを開始しました。しかし、MySQLGetFieldAsxxxxxxxでクラッシュします。2015.01.09 21:32:09.535 testsql(AUDNZD,H1)000000013F81347A 488BF2 mov rsi, rdx 2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813476 4883EC20 sub rsp, 0x20 2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813475 57 push rdi 2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813470 4889742418 mov [rsp+0x18], rsi 2015.01.09 21:32:09.535 testsql (AUDNZD,H1) Access violation at 0x000000013F8134B3 read to 0x000000000001 2015.01.09 21:32:09.535 testsql (AUDNZD,H1) +++++++++++0 2015.01.09 21:32:09.535 testsql (AUDNZD,H1) 2 row(s) selected. 2015.01.09 21:32:09.425 testsql (AUDNZD,H1) Connected 2015.01.09 21:31:18.135 testsql (AUDNZD,H1) x 0 yソーサ#include <FXCM\PairsInfo.mqh> #include <FXCM\MQLMySQL.mqh> //--- 入力パラメータ input string MySQLURL="yyyyyyyyyyyyyy"; input string MySQLDB = "forex"; input string MySQLParms = "tradeparms"; input string MySQLUser="Ingvar"; input string MySQLPW="xxxxxxxxxxxx"; input int MySQLPort=3306; input string GroupID= "Groupxxx"; PairsInfo prms; //+------------------------------------------------------------------+ //| スクリプト・プログラム開始機能| //+------------------------------------------------------------------+ void OnStart() { //--- string SQLString = ""; string Q; string C = ","; StringSetCharacter(Q,0,34); string query; int Cursor; int DB; int rows; DB = MySqlConnect(MySQLURL, MySQLUser, MySQLPW, MySQLDB, MySQLPort, "0", 0); if (DB == -1) { Print ("Connection failed! Error: "+MySqlErrorDescription); return; } Print ("Connected"); // query = "Select * From tradeparms"; // query = "Select * FROM tradeparms WHERE TradeType = 2"; query = "SELECT Pair, TradeType, SetupID FROM tradeparms WHERE TradeType = 2 AND Pair = 'USDJPY'"; Cursor = MySqlCursorOpen(DB,query); if(Cursor < 0) { Print("Cursor error"); return; } string pair= "x"; int tradetype = 0; string setupid = "y"; rows = MySqlCursorRows(Cursor); Print (rows, " row(s) selected."); for(int i=0;i<rows;i++) { if (MySqlCursorFetchRow(Cursor)) { Print("+++++++++++++" + i); pair = MySqlGetFieldAsString(Cursor, 0); << crashes here. // tradetype = MySqlGetFieldAsInt(Cursor,1); // setupid = MySqlGetFieldAsString(Cursor,2); } } Print(pair + " " + DoubleToString(tradetype,0) + " " + setupid); MySqlCursorClose(Cursor); } Discussion of article "How ライブラリ: EAX_Mysql - MySQLライブラリ データサイエンスと機械学習(第21回):ニューラルネットワークと最適化アルゴリズムの解明 Ingvar Engelbrecht 2015.01.10 16:17 #24 win32の古いラップトップを掘り出してきて、そこに32ビット版をインストールし、同じソースを32ビットのライブラリーとインクルードでコンパイルした。うまくいった。問題は64ビット版 Eugeniy Lugovoy 2015.01.10 17:01 #25 ingvar_e:win32の古いラップトップを掘り出してきて、そこに32ビット版をインストールし、同じソースを32ビットのライブラリーとインクルードでコンパイルした。うまくいった。問題は64ビット版です。わかりました。ターミナルのバージョンは?MT4/MT5とビルド番号は? Ingvar Engelbrecht 2015.01.10 19:35 #26 elugovoy:わかりました。ターミナルのバージョンは?MT4/MT5、ビルド番号は?ターミナル MT5 ビルド 1035 W7 64で動作中 クラッシュターミナル MT5 ビルド 1035 XP 32で動作中 OKありがとうございます。現在、入力ファイルを使用するマルチカレンシー、ムリメソッド(のようなもの)のEAに取り組んでいます。異なる入力ファイルを柔軟にテストするために、MySQLに変換しています。 Eugeniy Lugovoy 2015.01.12 01:17 #27 ingvar_e:ターミナル MT5 ビルド 1035 W7 64で動作中 クラッシュTerminal MT5 Build 1035 XP 32で動作中 OKありがとうございます。現在、入力ファイルを使用するマルチカレンシー、ムリメソッド(のようなもの)のEAに取り組んでいます。異なる入力ファイルを柔軟にテストするために、MySQLに変換しています。x64 OS、MT5 build 1035でテストしました。その通りです。いくつかのチェックを行ったところ、DLLに来るデータは問題なく動作することがわかりました。問題はDLLの関数から STRINGデータ型を受信することです。また、私自身のスクリプトをMT5 x64の以前のビルドでコンパイルしてテストしましたが、問題なく動作しました。しかし、ビルド1035で再コンパイルした後、同じDLLで同じスクリプトを実行すると、このようなエラーが発生します。最終的に、問題はDLLやMQLMySQLプロジェクトではなく、MT5 x64コンパイラにあると仮定します。この問題についてサービスデスクにケースを開設しました。ありがとうございました、ユージン Eugeniy Lugovoy 2015.01.12 01:34 #28 ingvar_e:ターミナル MT5 ビルド 1035 W7 64で動作中 クラッシュTerminal MT5 Build 1035 XP 32で動作中 OKありがとうございます。現在、入力ファイルを使用するマルチカレンシー、ムリメソッド(のようなもの)のEAに取り組んでいます。異なる入力ファイルを柔軟にテストするために、MySQLに変換しています。テスト用に、配布パッケージに含まれている私のスクリプトを使用することができます。INIファイルでデータベースの認証情報を変更し、スクリプトを実行してください。再コンパイルしてもう一度実行してみてください。1回目の実行では問題なく動作しますが、再コンパイルするとあなたのスクリプトと同じエラーが発生します。問題はMT5 x64 b1035ターミナル/コンパイラで発生します。 Ingvar Engelbrecht 2015.01.12 11:45 #29 elugovoy:テスト用に、配布パッケージに含まれている私のスクリプトを使うことができます。INIファイルでデータベースの認証情報を変更してから、スクリプトを実行してください。再コンパイルしてもう一度実行してみてください。1回目の実行では問題なく動作しますが、再コンパイルすると、あなたのスクリプトと同じエラーが発生することがわかります。問題はMT5 x64 b1035ターミナル/コンパイラで発生します。>問題はMT5 x64 b1035にあります。ということは、私たちは行き詰まっているのでしょうか?私の古い32ビットのラップトップは、今日ギブアップした。完全に死んでしまった。64ビットのマシンに32ビットのウィンドウズをインストールできないだろうか。あるいは、Windows 7の64ビットマシンにMT5/MQL5の32ビットをインストールするか。後で:これを見つけた。64ビットOSに32ビット版をインストールするには、/32キーでインストーラーを起動します。例えば、c:˶>mt5setup.exe /32.http://www.metatrader5.com/en/terminal/help/startworking/installation Ingvar Engelbrecht 2015.01.12 17:18 #30 ingvar_e:>MT5 x64 b1035での問題私たちは立ち往生しているのですか?私の古い32ビットのラップトップは、今日ギブアップした。完全に死んでしまった。64ビットのマシンに32ビットのウィンドウズをインストールすることはできるのだろうか?あるいは、Windows 7の64ビットマシンにMT5/MQL5の32ビットをインストールするか。後で:これを見つけた。64ビットOSに32ビット版をインストールするには、/32キーでインストーラーを起動します。例えば、c:˶>mt5setup.exe /32.,SYMBOL_TRADE_TICK_VALUE) は0を返します;多分、32ビットのMT5をウィンドウズの64ビットマシンで実行するのは良い考えではない。他の不具合の兆候もあります。次に試すのは、私の64ビットコンピュータに32ビットのウィンドウズをインストールすることだ。いつもこのような長い回り道をしていると、メインコースから大きく外れてしまう :-(このツールに見切りをつけて、MySQLの基本に戻るしかなさそうだ。新しいウィンドウズXPをインストールするのは面倒だし、W7のキーもない。 12345678910...30 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
記事をありがとうございました!あなたが気にしない場合は、ログを見てください、私は何も理解することはできません....どのように多くのソリューションは、どこでも同じことを試していませんでした。
MySQLサーバ:
MT5ビルド1035
OS: Win8.1 x64
はじめまして。
あなたのオペレーティング・システムはx64ですが、64ビット版のDLLを使用していますか?
DLLはディスカッションの投稿に添付されています(mqlmysql_for_mql5_x64.zip1264 kb)。
その記事にはx86オペレーティング・システム用のライブラリしかありませんでした。
ところで、アーカイブにあるテスト・サンプルは動きますか?
<<少し後>>。
Tester file added: librariesMQLMySQL.dll.89626バイトがロードされました。
x64ファイルMQLMySQL.dllの 元のサイズは89626ではなく89600バイトです。
どのアンチウイルスを使用していますか?
こんにちは。
コンセプトが気に入った。大きな助けになるはずです。
でも、ちょっと問題があるんだ。私は64ビットを使用しており、それらをダウンロードし、どのように動作するかを確認するためにテストスクリプトを開始しました。
しかし、MySQLGetFieldAsxxxxxxxでクラッシュします。
2015.01.09 21:32:09.535 testsql(AUDNZD,H1)000000013F81347A 488BF2 mov rsi, rdx
2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813476 4883EC20 sub rsp, 0x20
2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813475 57 push rdi
2015.01.09 21:32:09.535 testsql (AUDNZD,H1)000000013F813470 4889742418 mov [rsp+0x18], rsi
2015.01.09 21:32:09.535 testsql (AUDNZD,H1) Access violation at 0x000000013F8134B3 read to 0x000000000001
2015.01.09 21:32:09.535 testsql (AUDNZD,H1) +++++++++++0
2015.01.09 21:32:09.535 testsql (AUDNZD,H1) 2 row(s) selected.
2015.01.09 21:32:09.425 testsql (AUDNZD,H1) Connected
2015.01.09 21:31:18.135 testsql (AUDNZD,H1) x 0 y
ソーサ
win32の古いラップトップを掘り出してきて、そこに32ビット版をインストールし、同じソースを32ビットのライブラリーとインクルードでコンパイルした。
うまくいった。問題は64ビット版
win32の古いラップトップを掘り出してきて、そこに32ビット版をインストールし、同じソースを32ビットのライブラリーとインクルードでコンパイルした。
うまくいった。問題は64ビット版です。
わかりました。
ターミナルのバージョンは?MT4/MT5とビルド番号は?
わかりました。
ターミナルのバージョンは?MT4/MT5、ビルド番号は?
ターミナル MT5 ビルド 1035 W7 64で動作中 クラッシュ
ターミナル MT5 ビルド 1035 XP 32で動作中 OK
ありがとうございます。現在、入力ファイルを使用するマルチカレンシー、ムリメソッド(のようなもの)のEAに取り組んでいます。異なる入力ファイルを柔軟にテストするために、MySQLに変換しています。
ターミナル MT5 ビルド 1035 W7 64で動作中 クラッシュ
Terminal MT5 Build 1035 XP 32で動作中 OK
ありがとうございます。現在、入力ファイルを使用するマルチカレンシー、ムリメソッド(のようなもの)のEAに取り組んでいます。異なる入力ファイルを柔軟にテストするために、MySQLに変換しています。
x64 OS、MT5 build 1035でテストしました。その通りです。
いくつかのチェックを行ったところ、DLLに来るデータは問題なく動作することがわかりました。問題はDLLの関数から STRINGデータ型を受信することです。
また、私自身のスクリプトをMT5 x64の以前のビルドでコンパイルしてテストしましたが、問題なく動作しました。
しかし、ビルド1035で再コンパイルした後、同じDLLで同じスクリプトを実行すると、このようなエラーが発生します。
最終的に、問題はDLLやMQLMySQLプロジェクトではなく、MT5 x64コンパイラにあると仮定します。この問題についてサービスデスクにケースを開設しました。
ありがとうございました、
ユージン
ターミナル MT5 ビルド 1035 W7 64で動作中 クラッシュ
Terminal MT5 Build 1035 XP 32で動作中 OK
ありがとうございます。現在、入力ファイルを使用するマルチカレンシー、ムリメソッド(のようなもの)のEAに取り組んでいます。異なる入力ファイルを柔軟にテストするために、MySQLに変換しています。
テスト用に、配布パッケージに含まれている私のスクリプトを使用することができます。
INIファイルでデータベースの認証情報を変更し、スクリプトを実行してください。
再コンパイルしてもう一度実行してみてください。
1回目の実行では問題なく動作しますが、再コンパイルするとあなたのスクリプトと同じエラーが発生します。
問題はMT5 x64 b1035ターミナル/コンパイラで発生します。
テスト用に、配布パッケージに含まれている私のスクリプトを使うことができます。
INIファイルでデータベースの認証情報を変更してから、スクリプトを実行してください。
再コンパイルしてもう一度実行してみてください。
1回目の実行では問題なく動作しますが、再コンパイルすると、あなたのスクリプトと同じエラーが発生することがわかります。
問題はMT5 x64 b1035ターミナル/コンパイラで発生します。
>問題はMT5 x64 b1035にあります。
ということは、私たちは行き詰まっているのでしょうか?
私の古い32ビットのラップトップは、今日ギブアップした。完全に死んでしまった。
64ビットのマシンに32ビットのウィンドウズをインストールできないだろうか。あるいは、Windows 7の64ビットマシンにMT5/MQL5の32ビットをインストールするか。
後で:
これを見つけた。
>MT5 x64 b1035での問題
私たちは立ち往生しているのですか?
私の古い32ビットのラップトップは、今日ギブアップした。完全に死んでしまった。
64ビットのマシンに32ビットのウィンドウズをインストールすることはできるのだろうか?あるいは、Windows 7の64ビットマシンにMT5/MQL5の32ビットをインストールするか。
後で:
これを見つけた。
は0を返します;
多分、32ビットのMT5をウィンドウズの64ビットマシンで実行するのは良い考えではない。他の不具合の兆候もあります。次に試すのは、私の64ビットコンピュータに32ビットのウィンドウズをインストールすることだ。
いつもこのような長い回り道をしていると、メインコースから大きく外れてしまう :-(
このツールに見切りをつけて、MySQLの基本に戻るしかなさそうだ。新しいウィンドウズXPをインストールするのは面倒だし、W7のキーもない。