記事"MQL5 (MQL4)から MySQL データベースにアクセスする方法"についてのディスカッション - ページ 9 12345678910111213141516...30 新しいコメント Sergey Deynego 2016.01.16 12:31 #81 Eugeniy Lugovoy: MT4 build 890 x32 を確認しました。すべて動作しています。テストスクリプトの実行ログ:みんな、明確にしてください:1.どのような操作で"Access violation read " となりますか??2.MySQL-001スクリプトを実行する際、エキスパートタブに表示されるMQLMySQLのバージョンは何ですか?MQLMySQL v2.2 x32 Copyright © 2014, FxCodex Laboratory.3.MySQL データベースのバージョンは? 4.MySQLはローカルまたはリモートホストで使用されていますか?5.ターミナルは どのオペレーティングシステムで実行 しますか?エラーが再現できないので、確認して報告してください。同じような環境を作ってテストしてみます。MT4(950)を使用しています。記事に添付されているアーカイブからファイルを取りました。MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratory.設定ファイルからデータを読みません。 Eugeniy Lugovoy 2016.01.16 17:16 #82 Sergey Deynego:MT4(950)を使っています。私は記事に添付されたアーカイブからファイルを取りました。MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratory.設定ファイルからデータを読みません。はい、v2.0は古いです。新しいバージョンはすでに記事のディスカッションに掲載しました。これから添付します。MQLMySQL v2.2 - x64およびx86用DLLプロジェクト ソースこれを試してみてください。最新版のようです。 ファイル: MQLMySQL_v2.2.zip 4801 kb MQL4_x32.zip 1073 kb MQL5_x32.zip 1073 kb MQL5_x64.zip 1076 kb peg 2016.01.18 11:56 #83 Eugeniy Lugovoy:ログにあるエラーに基づくと、次のようになります。0 11:09:37.742 MySQL-002 EURUSD,H1: テーブル `table` を作成できません。table "という名前を使用していますが、これはmysqlデータベースのキーワードであり、テーブル名として使用することはできません。接続後すぐに "USE database_name "コマンドを実行することができます。例えば、私のデータベースが "mysql "である場合: DB = MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag); if (DB ==-1) { Print ("接続に失敗しました!エラー: "+MySqlErrorDescription); } else { Print ("接続されました!DBID#",DB);}。MySqlExecute(DB, "USE mysql");さて、テーブルの名前とMySqlExecute(DB, "USE mt4") コマンドについてはあなたの提案に従いましたが、まだエラーメッセージが表示されます:0 12:51:40.534 スクリプト MySQL-002new EURUSD,M1: 正常にロードされました。0 12:51:40.549 MySQL-002new EURUSD,M1: 初期化されました。0 12:51:40.549 MySQL-002new EURUSD,M1:MQLMySQL v2.0 デモ Copyright © 2014, FxCodex Laboratory0 12:51:40.549 MySQL-002new EURUSD,M1: Host:ユーザー: , データベース:0 12:51:40.549 MySQL-002new EURUSD,M1:接続中...0 12:51:40.565 MySQL-002new EURUSD,M1: 接続中!接続されました!DBID#00 12:51:40.565 MySQL-002new EURUSD,M1: テーブル `test_table` を作成できません。エラー:エラー: Aucune base n't?0 12:51:40.565 MySQL-002new EURUSD,M1:切断されました。スクリプトは終了しました!0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 00 12:51:40.565 スクリプト MySQL-002new EURUSD,M1:削除されました。 Discussion of article "How MQL5 (MQL4)から MySQL データベースにアクセスする方法 Mehdi Donyadideh Ahrab 2016.02.19 22:25 #84 こんにちは、Eugeniy Lugovoy、有用なプロジェクトをありがとうございます。私はテーブルから約3,000文字の文字列フィールドを読み込もうとしており、このように「MySqlGetFieldAsString」を使用しました:if (Cursor >= 0){Rows = MySqlCursorRows(Cursor);for (int i=0; i<Rows; i++)if (MySqlCursorFetchRow(Cursor)){Get_Setting = MySqlGetFieldAsString(Cursor, 4);} .....しかし、問題は Get_String が 1025 文字しか返さないことです、そのフィールドを完全に読み取る必要があります。この問題を解決する方法を教えてください。よろしくお願いします。 Discussion of article "How すべて閉じる」/「開く」ツール MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Eugeniy Lugovoy 2016.02.24 12:30 #85 FX. MDA7:こんにちは、Eugeniy Lugovoy、有用なプロジェクトをありがとうございます。私はテーブルから約3,000文字の文字列フィールドを読み込もうとしており、このように「MySqlGetFieldAsString」を使用しました:if (Cursor >= 0){Rows = MySqlCursorRows(Cursor);for (int i=0; i<Rows; i++)if (MySqlCursorFetchRow(Cursor)){Get_Setting = MySqlGetFieldAsString(Cursor, 4);} .....しかし、問題は Get_String が 1025 文字しか返さないことです、そのフィールドを完全に読み取る必要があります。この問題を解決する方法を教えてください。回答 はい、文字データの最大長を1024文字に設定しました。この制限を変更して、DLLを再構築することができます。ところで、DB側でそのカラムに使用しているデータ型は何ですか? Eugeniy Lugovoy 2016.02.24 12:32 #86 peg:テーブルの名前とMySqlExecute(DB, "USE mt4") コマンドについては、あなたの提案に従いましたが、まだエラーメッセージが表示されます:0 12:51:40.534 スクリプト MySQL-002new EURUSD,M1: 正常にロードされました。0 12:51:40.549 MySQL-002new EURUSD,M1: 初期化されました。0 12:51:40.549 MySQL-002new EURUSD,M1:MQLMySQL v2.0 デモ Copyright © 2014, FxCodex Laboratory0 12:51:40.549 MySQL-002new EURUSD,M1: Host:ユーザー: , データベース:0 12:51:40.549 MySQL-002new EURUSD,M1:接続中...0 12:51:40.565 MySQL-002new EURUSD,M1: 接続中!接続されました!DBID#00 12:51:40.565 MySQL-002new EURUSD,M1: テーブル `test_table` を作成できません。エラー:エラー: Aucune base n't?0 12:51:40.565 MySQL-002new EURUSD,M1:切断されました。スクリプトは終了しました!0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 00 12:51:40.565 スクリプト MySQL-002new EURUSD,M1: 削除されました。 なぜバージョンは"MQLMySQL v2.0"なのか? Ingvar Engelbrecht 2016.02.29 00:09 #87 素晴らしい!MQL4用のデータを生成するためにMQL5を使用。クエリ・コマンドでtablenameを囲むシングルクォートを削除しなければならなかったことを除けば、すべてが見事に機能しました。Query ="SELECT Symbol,Composite,Pattern FROM summarytable";うまくいった Eugeniy Lugovoy 2016.02.29 09:56 #88 Ingvar Engelbrecht:素晴らしい!MQL4用のデータを生成するためにMQL5を使用。クエリ・コマンドでtablenameを囲むシングルクォートを削除しなければならなかったことを除けば、すべてが見事に機能しました。Query ="SELECT Symbol,Composite,Pattern FROM summarytable";これでOK大文字と小文字を区別する)テーブル名や特殊な記号を使用しないのであれば、引用符なしで使用することも可能です。ちなみに、シングルクォート記号は「'」ではなく「`」です。ですから、クエリも次のようになります:Query ="SELECT `Symbol`,`Composite`,`Pattern` FROM `summarytable`";カラム名をSymbolに したいが、 symbolでも SYMBOLでも ない場合 danny_adil 2016.03.08 14:00 #89 こんにちは、Eugeniy、あなたのモジュールに感謝します。フィールド名を取得する関数を 追加する方法を教えてください。 1982EAcsc 2016.04.23 17:36 #90 お元気ですか!システム win10 64x, データベースに接続できません。 12345678910111213141516...30 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MT4 build 890 x32 を確認しました。すべて動作しています。
テストスクリプトの実行ログ:
みんな、明確にしてください:
1.どのような操作で"Access violation read " となりますか??
2.MySQL-001スクリプトを実行する際、エキスパートタブに表示されるMQLMySQLのバージョンは何ですか?MQLMySQL v2.2 x32 Copyright © 2014, FxCodex Laboratory.
3.MySQL データベースのバージョンは?
4.MySQLはローカルまたはリモートホストで使用されていますか?
5.ターミナルは どのオペレーティングシステムで実行 しますか?
エラーが再現できないので、確認して報告してください。
同じような環境を作ってテストしてみます。
MT4(950)を使用しています。記事に添付されているアーカイブからファイルを取りました。MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratory.
設定ファイルからデータを読みません。
MT4(950)を使っています。私は記事に添付されたアーカイブからファイルを取りました。MySQL-001 EURUSD,M1: MQLMySQL v2.0 Demo Copyright © 2014, FxCodex Laboratory.
設定ファイルからデータを読みません。
はい、v2.0は古いです。新しいバージョンはすでに記事のディスカッションに掲載しました。
これから添付します。
MQLMySQL v2.2 - x64およびx86用DLLプロジェクト ソース
これを試してみてください。最新版のようです。
ログにあるエラーに基づくと、次のようになります。0 11:09:37.742 MySQL-002 EURUSD,H1: テーブル `table` を作成できません。
table "という名前を使用していますが、これはmysqlデータベースのキーワードであり、テーブル名として使用することはできません。
接続後すぐに "USE database_name "コマンドを実行することができます。
例えば、私のデータベースが "mysql "である場合:
DB = MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);
if (DB ==-1) { Print ("接続に失敗しました!エラー: "+MySqlErrorDescription); } else { Print ("接続されました!DBID#",DB);}。
MySqlExecute(DB, "USE mysql");
さて、テーブルの名前とMySqlExecute(DB, "USE mt4") コマンドについてはあなたの提案に従いましたが、まだエラーメッセージが表示されます:
0 12:51:40.534 スクリプト MySQL-002new EURUSD,M1: 正常にロードされました。
0 12:51:40.549 MySQL-002new EURUSD,M1: 初期化されました。
0 12:51:40.549 MySQL-002new EURUSD,M1:MQLMySQL v2.0 デモ Copyright © 2014, FxCodex Laboratory
0 12:51:40.549 MySQL-002new EURUSD,M1: Host:ユーザー: , データベース:
0 12:51:40.549 MySQL-002new EURUSD,M1:接続中...
0 12:51:40.565 MySQL-002new EURUSD,M1: 接続中!接続されました!DBID#0
0 12:51:40.565 MySQL-002new EURUSD,M1: テーブル `test_table` を作成できません。エラー:エラー: Aucune base n't?
0 12:51:40.565 MySQL-002new EURUSD,M1:切断されました。スクリプトは終了しました!
0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 0
0 12:51:40.565 スクリプト MySQL-002new EURUSD,M1:削除されました。
こんにちは、Eugeniy Lugovoy、
有用なプロジェクトをありがとうございます。
私はテーブルから約3,000文字の文字列フィールドを読み込もうとしており、このように「MySqlGetFieldAsString」を使用しました:
if (Cursor >= 0)
{
Rows = MySqlCursorRows(Cursor);
for (int i=0; i<Rows; i++)
if (MySqlCursorFetchRow(Cursor))
{
Get_Setting = MySqlGetFieldAsString(Cursor, 4);
}
.....
しかし、問題は Get_String が 1025 文字しか返さないことです、
そのフィールドを完全に読み取る必要があります。
この問題を解決する方法を教えてください。
よろしくお願いします。
こんにちは、Eugeniy Lugovoy、
有用なプロジェクトをありがとうございます。
私はテーブルから約3,000文字の文字列フィールドを読み込もうとしており、このように「MySqlGetFieldAsString」を使用しました:
if (Cursor >= 0)
{
Rows = MySqlCursorRows(Cursor);
for (int i=0; i<Rows; i++)
if (MySqlCursorFetchRow(Cursor))
{
Get_Setting = MySqlGetFieldAsString(Cursor, 4);
}
.....
しかし、問題は Get_String が 1025 文字しか返さないことです、
そのフィールドを完全に読み取る必要があります。
この問題を解決する方法を教えてください。
回答
テーブルの名前とMySqlExecute(DB, "USE mt4") コマンドについては、あなたの提案に従いましたが、まだエラーメッセージが表示されます:
0 12:51:40.534 スクリプト MySQL-002new EURUSD,M1: 正常にロードされました。
0 12:51:40.549 MySQL-002new EURUSD,M1: 初期化されました。
0 12:51:40.549 MySQL-002new EURUSD,M1:MQLMySQL v2.0 デモ Copyright © 2014, FxCodex Laboratory
0 12:51:40.549 MySQL-002new EURUSD,M1: Host:ユーザー: , データベース:
0 12:51:40.549 MySQL-002new EURUSD,M1:接続中...
0 12:51:40.565 MySQL-002new EURUSD,M1: 接続中!接続されました!DBID#0
0 12:51:40.565 MySQL-002new EURUSD,M1: テーブル `test_table` を作成できません。エラー:エラー: Aucune base n't?
0 12:51:40.565 MySQL-002new EURUSD,M1:切断されました。スクリプトは終了しました!
0 12:51:40.565 MySQL-002new EURUSD,M1: uninit reason 0
0 12:51:40.565 スクリプト MySQL-002new EURUSD,M1: 削除されました。
素晴らしい!
MQL4用のデータを生成するためにMQL5を使用。
クエリ・コマンドでtablenameを囲むシングルクォートを削除しなければならなかったことを除けば、すべてが見事に機能しました。
Query ="SELECT Symbol,Composite,Pattern FROM summarytable";
うまくいった
素晴らしい!
MQL4用のデータを生成するためにMQL5を使用。
クエリ・コマンドでtablenameを囲むシングルクォートを削除しなければならなかったことを除けば、すべてが見事に機能しました。
Query ="SELECT Symbol,Composite,Pattern FROM summarytable";
これでOK
大文字と小文字を区別する)テーブル名や特殊な記号を使用しないのであれば、引用符なしで使用することも可能です。ちなみに、シングルクォート記号は「'」ではなく「`」です。
ですから、クエリも次のようになります:Query ="SELECT `Symbol`,`Composite`,`Pattern` FROM `summarytable`";
カラム名をSymbolに したいが、 symbolでも SYMBOLでも ない場合
こんにちは、Eugeniy、
あなたのモジュールに感謝します。フィールド名を取得する関数を 追加する方法を教えてください。
お元気ですか!
システム win10 64x, データベースに接続できません。