記事"MQL5 (MQL4)から MySQL データベースにアクセスする方法"についてのディスカッション - ページ 24 1...1718192021222324252627282930 新しいコメント Dmitri Custurov 2020.05.06 11:33 #231 キャッシュ_sha2_passwordのサポートについてはどうですか?それともmysql_native_passwordをインストールすればいいのでしょうか? Eugeniy Lugovoy 2020.05.09 09:26 #232 Dmitri Custurov: キャッシュ_sha2_passwordのサポートについてはどうですか?それともmysql_native_passwordをインストールするだけですか? このソリューションで本当にsha2のサポートが必要な人はいるのでしょうか? では、データベースサーバーはローカルにあるわけでも、vpn下にあるわけでもないのですね? arsenico42 2020.05.17 16:30 #233 エウゲニー・ルゴヴォイ、ご苦労様!現在のバージョンの実装では、(AUTO_INCREMENTカラムを持つテーブルの)INSERT操作後に "LAST_INSERT_ID "を取得する方法はありますか? よろしくお願いします。) Eugeniy Lugovoy 2020.05.24 10:12 #234 arsenico42:エウゲニー・ルゴヴォイ、ご苦労様!現在のバージョンの実装では、(AUTO_INCREMENTカラムを持つテーブルの)INSERT操作後に "LAST_INSERT_ID "を取得する方法はありますか? よろしくお願いします。) LAST_INSERT_IDはグローバルなデータベース変数を返す関数で、最初の挿入とLAST_INSERT_IDの選択の間に別の挿入(別のユーザーから、同時に実行される)があると、LAST_INSERT_IDの値に影響を与える可能性があるからです。 これはライブラリに依存するものではなく、mysql/mariadbがどのように動作するかということです。 しかし、データベース側で必要な値を挿入する関数を作成し、LAST_INSERT_IDを選択し、このIDを関数の値として返すようにアドバイスすることができます: CREATE FUNCTION `import_funds_add`( `p_file_name` varchar(64), `p_full_path` varchar(2000), `p_status` VARCHAR(10), `p_error` VARCHAR(2000) ) RETURNS bigint(20) LANGUAGE SQL NOT DETERMINISTIC MODIFIES SQL DATA BEGIN declare id bigint; INSERT INTO import_funds(`file_name`, `full_path`, `status`, `error`, `creation_date`) VALUES (p_file_name, p_full_path, p_status, p_error, now()); SELECT LAST_INSERT_ID() INTO id; RETURN(id); END;; MQLでは、クエリ用にカーソルを開く必要があります: qry="SELECT import_funds_add('bonuses.csv','c:\\broker imports\\XXX-FX','NEW','No errors') as last_id"; そして、通常のカーソルから値を取得し、カーソルを閉じます。 つまり、MQLでこれらのコマンドを別々に使用する代わりに、DB側でこれらを組み合わせて関数にすることができます。 あくまで実システムでの例です。 Eugeniy Lugovoy 2020.05.27 13:08 #235 Carmine Marrone:こんにちは、エルゴヴォイ素晴らしい記事と素晴らしいライブラリだ。あなたのサンプルをMT5で使おうとしているのですが、こんなエラーが出ます:2014.12.15 15:44:16.387 MySQL-001 'C:˶Users....˶AppData˶Roaming˶MetaQuotes˶Terminal˶D0E8209F77C8CF37AD8BF550E51FF075˶MQL5˶libraries˶MQLMySQL.dll' is not 64-bit version32ビット環境でMT5を実行していますか?助けていただけますか?ありがとうございました!カーマイン・マローネ こんにちは、カーマイン。githubのソースからx64版をダウンロードできます。 https://github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release MARCOS DALCIN ALVES DINIZ 2020.05.29 09:11 #236 こんにちは、 @Eugeniy Lugovoy、まずはコミュニティへの貢献に感謝します 私はここで立ち往生しています: "Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126] "Cannot call 'ReadIni', '..﹑libraries﹑MQLMySQL.dll'がロードされていません" Eugeniy Lugovoy 2020.05.29 10:17 #237 MARCOS DALCIN ALVES DINIZ:エウゲニィ・ルゴヴォイ、まずはコミュニティへの貢献に感謝するよ。 私はここで立ち往生しています: "Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]"Cannot call 'ReadIni', '..﹑libraries﹑MQLMySQL.dll'がロードされていません" MQLMySQL.dllとMQLMySQL.defファイルがフォルダ "C:◆Users ◆Admin ◆AppData ◆Roaming ◆MetaQuotes ◆Tester ◆D0E8209F77CF37AD8BF550E51FF075Agent-127.0.0.1-3000 ◆MQL5 ◆libraries" にあることを確認してください。 TesterモードでMQLプログラムを実行している場合、libsへのパスが異なることがわかります(UACのため)。 Yu Zhang 2020.06.02 11:49 #238 複数挿入エラー Query = "INSERT INTO `test_table` (id, code, start_date) VALUES (1,\'EURUSD\',\'2014.01.01 00:00:01\');"; Query = Query + "INSERT INTO `test_table` (id, code, start_date) VALUES (2,\'EURJPY\',\'2014.01.02 00:02:00\');"; Query = Query + "INSERT INTO `test_table` (id, code, start_date) VALUES (3,\'USDJPY\',\'2014.01.03 03:00:00\');"; 複数ステートメントのエラー:MySQLサーバーのバージョンに対応するマニュアルを参照してください。 Yu Zhang 2020.06.02 15:59 #239 SQLコマンドの変更に対応していますか? Eugeniy Lugovoy 2020.06.05 11:30 #240 Yu Zhang:マルチインサートがエラーになる。複数ステートメントのエラー:MySQLサーバーのバージョンに対応するマニュアルを参照してください。 データベース接続の開始時に複数ステートメントクライアントフラグが設定されていることを確認してください。 int ClientFlag = CLIENT_MULTI_STATEMENTS; // マルチステートメント・フラグの設定 int DB; DB = MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag); // データベースへの接続 1...1718192021222324252627282930 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
キャッシュ_sha2_passwordのサポートについてはどうですか?それともmysql_native_passwordをインストールするだけですか?
このソリューションで本当にsha2のサポートが必要な人はいるのでしょうか?
では、データベースサーバーはローカルにあるわけでも、vpn下にあるわけでもないのですね?
エウゲニー・ルゴヴォイ、ご苦労様!
現在のバージョンの実装では、(AUTO_INCREMENTカラムを持つテーブルの)INSERT操作後に "LAST_INSERT_ID "を取得する方法はありますか?
よろしくお願いします。)エウゲニー・ルゴヴォイ、ご苦労様!
現在のバージョンの実装では、(AUTO_INCREMENTカラムを持つテーブルの)INSERT操作後に "LAST_INSERT_ID "を取得する方法はありますか?
よろしくお願いします。)LAST_INSERT_IDはグローバルなデータベース変数を返す関数で、最初の挿入とLAST_INSERT_IDの選択の間に別の挿入(別のユーザーから、同時に実行される)があると、LAST_INSERT_IDの値に影響を与える可能性があるからです。
これはライブラリに依存するものではなく、mysql/mariadbがどのように動作するかということです。
しかし、データベース側で必要な値を挿入する関数を作成し、LAST_INSERT_IDを選択し、このIDを関数の値として返すようにアドバイスすることができます:
MQLでは、クエリ用にカーソルを開く必要があります:
qry="SELECT import_funds_add('bonuses.csv','c:\\broker imports\\XXX-FX','NEW','No errors') as last_id";
そして、通常のカーソルから値を取得し、カーソルを閉じます。
つまり、MQLでこれらのコマンドを別々に使用する代わりに、DB側でこれらを組み合わせて関数にすることができます。
あくまで実システムでの例です。
こんにちは、エルゴヴォイ
素晴らしい記事と素晴らしいライブラリだ。
あなたのサンプルをMT5で使おうとしているのですが、こんなエラーが出ます:
2014.12.15 15:44:16.387 MySQL-001 'C:˶Users....˶AppData˶Roaming˶MetaQuotes˶Terminal˶D0E8209F77C8CF37AD8BF550E51FF075˶MQL5˶libraries˶MQLMySQL.dll' is not 64-bit version
32ビット環境でMT5を実行していますか?
助けていただけますか?
ありがとうございました!
カーマイン・マローネ
こんにちは、カーマイン。githubのソースからx64版をダウンロードできます。
https://github.com/elugovoy/MQLMySQL-Project/tree/master/MQLMySQL/x64/Release
こんにちは、 @Eugeniy Lugovoy、まずはコミュニティへの貢献に感謝します
私はここで立ち往生しています:
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
エウゲニィ・ルゴヴォイ、まずはコミュニティへの貢献に感謝するよ。
私はここで立ち往生しています:
"Cannot load 'C:\Users\Admin\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\MQL5\libraries\MQLMySQL.dll'" [126]
MQLMySQL.dllとMQLMySQL.defファイルがフォルダ "C:◆Users ◆Admin ◆AppData ◆Roaming ◆MetaQuotes ◆Tester ◆D0E8209F77CF37AD8BF550E51FF075Agent-127.0.0.1-3000 ◆MQL5 ◆libraries" にあることを確認してください。
TesterモードでMQLプログラムを実行している場合、libsへのパスが異なることがわかります(UACのため)。
複数挿入エラー
複数ステートメントのエラー:MySQLサーバーのバージョンに対応するマニュアルを参照してください。
マルチインサートがエラーになる。
複数ステートメントのエラー:MySQLサーバーのバージョンに対応するマニュアルを参照してください。
データベース接続の開始時に複数ステートメントクライアントフラグが設定されていることを確認してください。