記事"MQL5 (MQL4)から MySQL データベースにアクセスする方法"についてのディスカッション - ページ 14 1...789101112131415161718192021...30 新しいコメント MetaQuotes 2016.10.20 16:30 #131 Pavel Kolchin:というのはどういう意味ですか?この行で私のコードを実行するとif(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);}res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);MQLでは文字列はすべてUnicodeで、ANSIの代わりに文字列を渡します。だからDLLKAがクラッシュするんだ。 Pavel Kolchin 2016.10.20 16:55 #132 MetaQuotes Software Corp.:MQLではすべての文字列がUnicodeであり、ANSIの代わりに文字列を渡します。それがDLLがクラッシュする理由です。この条件を削除すれば、一般的にはすべて動作しますし、別の方法でやり直すこともできます。//if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);//}res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account); Eugeniy Lugovoy 2016.10.28 01:12 #133 MetaQuotes Software Corp.:MQLではすべての文字列がUnicodeであり、ANSIの代わりに文字列を渡します。これがDLLがクラッシュする理由です。 DLLでは再コーディングが行われる Eugeniy Lugovoy 2016.10.28 01:15 #134 Pavel Kolchin:もし私が条件を削除すれば、一般的に、すべてが動作し、あなたはそれがクラッシュする理由を理解していないだけで、別の方法でやり直すことができます。//if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);//}res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);このコードの前に接続はありますか?条件の前のDBは何に等しいですか?もしDB変数が初期化されていないなら、おそらくこれが原因でしょう。そして最後の例では、データベースへの接続を普通にオープンしており、それがカーソルも動作する理由です。 DLLに付属しているスクリプトは動作しますか? Anton Gaisin 2016.11.09 12:40 #135 ユージン、こんにちは!スクリプトをありがとう。私のプロジェクトに 導入することにしました。しかし、プロジェクトに添付されたスクリプトをテストしている段階で、1つのバグがあります。ReadIniが機能しないのです。何か間違っているのかもしれませんが、いつもiniから空の値を返します。何が原因なのでしょうか?指定されたパスにファイルが見つからないのではと思うのですが、別のディレクトリからチェックしたところ、すべて正しく配置されていました。接続用のデータを直接コードに記述すれば、すべてうまくいきます。 私はmt4を使っています。 Anton Gaisin 2016.11.12 21:40 #136 ロシア語のテキストがkarakaziabyに挿入されるのです。もちろんdllが再コード化していることは理解していますが、私のデータベースはUTF-8です。可読性のあるロシア語テキストを挿入するにはどうしたらいいでしょうか? Eugeniy Lugovoy 2016.11.13 11:43 #137 Anton Gaisin:ユージン、こんにちは!スクリプトをありがとう。私のプロジェクトに導入することにしました。しかし、プロジェクトに添付されたスクリプトをテストしている段階で、1つのバグがあります。ReadIniが機能しないのです。何か間違っているのかもしれませんが、いつもiniから空の値を返します。何が原因なのでしょうか?指定されたパスにファイルが見つからないのではと思うのですが、別のディレクトリからチェックしたところ、すべて正しく配置されていました。接続用のデータを直接コードに記述すれば、すべてうまくいきます。 私はmt4を使っています。パスを確認する必要があります。UACが影響している可能性が高いです。INIにどのパスを設定していますか?ターミナルディレクトリかDataか? Eugeniy Lugovoy 2016.11.13 11:44 #138 Anton Gaisin: ロシア語のテキストがkarakaziabyに挿入されるのです。もちろんdllが再コード化していることは理解していますが、私のデータベースはUTF-8です。可読性のあるロシア語テキストを挿入するにはどうしたらいいでしょうか?はい、ASCIIへの変換は進行中で、中国の同僚からもそれについての発言がありました。時間があり次第、修正しようと思います。 Anton Gaisin 2016.11.14 11:19 #139 Eugeniy Lugovoy: パスをチェックする必要がある...。UACが影響していると思われます。INIにどのパスを設定していますか?ターミナル・ディレクトリーかDataか?あなたのアーカイブにサンプルがあります...その中で私は全てをそのままにしています。INIを変更しただけです。問題は解決した。私自身が愚かでした。以前はMT4のフォルダとデータのフォルダは一体化していました。今はデータのフォルダはWindowsの特別なセクションに保存されている。パスはTerminalPath()ではなく、TerminalInfoString(TERMINAL_DATA_PATH)を取るのが正しい。 Eugeniy Lugovoy 2016.11.14 17:14 #140 Anton Gaisin:あなたのアーカイブに例があります...その中で私はすべてをそのままにしておきました。iniを変えただけだ。問題は解決した。私自身が愚かでした。以前はMT4のフォルダとデータのフォルダは一体化していました。今はデータのフォルダはWindowsの特別なセクションに保存されている。パスはTerminalPath()ではなく、TerminalInfoString(TERMINAL_DATA_PATH)を取るのが正しい。うーん...。私の記憶が正しければ、それは古いライブラリのどこかにあり、最新バージョン(ディスカッションに投稿)では修正しました :)OK.じゃあUTFの問題はまだ残っているね。 今週、週末までに解決してみるよ。 1...789101112131415161718192021...30 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
というのはどういう意味ですか?
この行で私のコードを実行すると
if(DB==-1){DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);}
res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);
MQLでは文字列はすべてUnicodeで、ANSIの代わりに文字列を渡します。
だからDLLKAがクラッシュするんだ。
MQLではすべての文字列がUnicodeであり、ANSIの代わりに文字列を渡します。
それがDLLがクラッシュする理由です。
この条件を削除すれば、一般的にはすべて動作しますし、別の方法でやり直すこともできます。
//if(DB==-1){
DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);
//}
res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);
MQLではすべての文字列がUnicodeであり、ANSIの代わりに文字列を渡します。
これがDLLがクラッシュする理由です。
もし私が条件を削除すれば、一般的に、すべてが動作し、あなたはそれがクラッシュする理由を理解していないだけで、別の方法でやり直すことができます。
//if(DB==-1){
DB=MySqlConnect(Host, User, Password, Database, Port, Socket, ClientFlag);
//}
res = MySqlCursorOpen(DB, "SELECT id, account, symbol FROM `current` WHERE account="+account);
このコードの前に接続はありますか?条件の前のDBは何に等しいですか?もしDB変数が初期化されていないなら、おそらくこれが原因でしょう。
そして最後の例では、データベースへの接続を普通にオープンしており、それがカーソルも動作する理由です。
DLLに付属しているスクリプトは動作しますか?ユージン、こんにちは!
スクリプトをありがとう。私のプロジェクトに 導入することにしました。しかし、プロジェクトに添付されたスクリプトをテストしている段階で、1つのバグがあります。ReadIniが機能しないのです。何か間違っているのかもしれませんが、いつもiniから空の値を返します。何が原因なのでしょうか?指定されたパスにファイルが見つからないのではと思うのですが、別のディレクトリからチェックしたところ、すべて正しく配置されていました。
接続用のデータを直接コードに記述すれば、すべてうまくいきます。
私はmt4を使っています。ユージン、こんにちは!
スクリプトをありがとう。私のプロジェクトに導入することにしました。しかし、プロジェクトに添付されたスクリプトをテストしている段階で、1つのバグがあります。ReadIniが機能しないのです。何か間違っているのかもしれませんが、いつもiniから空の値を返します。何が原因なのでしょうか?指定されたパスにファイルが見つからないのではと思うのですが、別のディレクトリからチェックしたところ、すべて正しく配置されていました。
接続用のデータを直接コードに記述すれば、すべてうまくいきます。
私はmt4を使っています。パスを確認する必要があります。UACが影響している可能性が高いです。INIにどのパスを設定していますか?ターミナルディレクトリかDataか?
ロシア語のテキストがkarakaziabyに挿入されるのです。もちろんdllが再コード化していることは理解していますが、私のデータベースはUTF-8です。可読性のあるロシア語テキストを挿入するにはどうしたらいいでしょうか?
はい、ASCIIへの変換は進行中で、中国の同僚からもそれについての発言がありました。時間があり次第、修正しようと思います。
パスをチェックする必要がある...。UACが影響していると思われます。INIにどのパスを設定していますか?ターミナル・ディレクトリーかDataか?
あなたのアーカイブにサンプルがあります...その中で私は全てをそのままにしています。INIを変更しただけです。
問題は解決した。私自身が愚かでした。以前はMT4のフォルダとデータのフォルダは一体化していました。今はデータのフォルダはWindowsの特別なセクションに保存されている。パスはTerminalPath()ではなく、TerminalInfoString(TERMINAL_DATA_PATH)を取るのが正しい。
あなたのアーカイブに例があります...その中で私はすべてをそのままにしておきました。iniを変えただけだ。
問題は解決した。私自身が愚かでした。以前はMT4のフォルダとデータのフォルダは一体化していました。今はデータのフォルダはWindowsの特別なセクションに保存されている。パスはTerminalPath()ではなく、TerminalInfoString(TERMINAL_DATA_PATH)を取るのが正しい。
うーん...。私の記憶が正しければ、それは古いライブラリのどこかにあり、最新バージョン(ディスカッションに投稿)では修正しました :)
OK.じゃあUTFの問題はまだ残っているね。 今週、週末までに解決してみるよ。