記事"MQL5 (MQL4)から MySQL データベースにアクセスする方法"についてのディスカッション - ページ 10

 
私のEメール:178255721@qq.com
 
 
1982EAcsc :

こんにちは、MySQLがlocalhost上のユーザーODBCの接続を拒否しているようです。

StackOverflowをチェックしてみてください : http://stackoverflow.com/questions/23950722/how-to-overcome-error-1045-28000-access-denied-for-user-odbclocalhost-u ;

how to overcome ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) permanently
how to overcome ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) permanently
  • stackoverflow.com
when am trying to open mysql in windows cmd by typing mysql. the following error is occuring. And then by looking similar queries i somehow got a temporary solution by using and then typing the password, is working...
 

こんにちはEugeniy Lugovoy。

私は一般的なクエリ、挿入、更新、削除操作を実装するためにMQLMySQLを使用しましたが、問題がある、中国語を挿入することはできません、中国語のうち、クエリも文字化けしている、私は、ミドルウェアのパッケージングプロセスは、エンコーディングを設定しているお願いしたいですか?私は、ミドルウェアパッケージングプロセスは、コードを設定している尋ねたい?現象は次のとおりです:

DROP TABLE IF EXISTS `tb_test_pat`;

CREATE TABLE `tb_test_pat` (

id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `symbol` varchitecture

symbol` varchar(255) NOT NULL, `start_time` datetime, `tb_test_pat`; CREATE TABLE

start_time` datetime NOT NULL、

end_time` datetime NOT NULL, `trend` int(255)

int(10) NOT NULL, `points` int(10)

int(10) unsigned zerofill NOT NULL, `comments` text CHARacteristic

コメント` text CHARACTER SET utf8、

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

中国語の挿入に失敗しました

エラー: クエリが空です クエリ: INSERT INTO tb_test_pat (trend, symbol, start_time, end_time, points, comments) VALUES (1,'EURUSD','2014.12.16 13:00','2014.12.17 20:00',8,'Test 12')

英語挿入成功

成功しました: INSERT INTO tb_test_pat (trend, symbol, start_time, end_time, points, comments) VALUES (1,'EURUSD','2014.12.16 13:00','2014.12.17 20:00',8,'abc')


これは何のため?

 
Jiayou Hu:

こんにちはEugeniy Lugovoy。

私は一般的なクエリ、挿入、更新、削除操作を実装するためにMQLMySQLを使用しましたが、問題がある、中国語を挿入することはできません、中国語のうち、クエリも文字化けしている、私は、ミドルウェアのパッケージングプロセスは、エンコーディングを設定しているお願いしたいですか?私は、ミドルウェアパッケージングプロセスは、コードを設定している尋ねたい?現象は次のとおりです:

DROP TABLE IF EXISTS `tb_test_pat`;

CREATE TABLE `tb_test_pat` (

id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `symbol` varchitecture

symbol` varchar(255) NOT NULL, `start_time` datetime, `tb_test_pat`; CREATE TABLE

start_time` datetime NOT NULL、

end_time` datetime NOT NULL, `trend` int(255)

int(10) NOT NULL, `points` int(10)

int(10) unsigned zerofill NOT NULL, `comments` text CHARacteristic

コメント` text CHARACTER SET utf8、

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

中国語の挿入に失敗しました

エラー: クエリが空です クエリ: INSERT INTO tb_test_pat (trend, symbol, start_time, end_time, points, comments) VALUES (1,'EURUSD','2014.12.16 13:00','2014.12.17 20:00',8,'Test 12')

英語挿入成功

成功しました: INSERT INTO tb_test_pat (trend, symbol, start_time, end_time, points, comments) VALUES (1,'EURUSD','2014.12.16 13:00','2014.12.17 20:00',8,'abc')


これは何のため?

MySQLに接続したら、次のコマンドを実行してみよう。

SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8'、character_set_server = 'utf8'

このような設定の一部がUTFに設定されていない可能性がある。

 

もう1つの解決策は、接続後に次のコマンドを1つずつ実行することである。

SET NAMES 'utf8'

SET CHARACTER SET 'utf8'

SET SESSION collation_connection = 'utf8_general_ci'

 
Eugeniy Lugovoy:

もう1つの解決策は、接続後に次のコマンドを1つずつ実行することである。

SET NAMES 'utf8'

SET CHARACTER SET 'utf8'

SET SESSION collation_connection = 'utf8_general_ci'

それでもうまくいかないが、問題を見つけた。

bool __stdcall MySqlExecute( int pConnection, wchar_t* pQuery)

{

...

char Query[16384];

sprintf_s(Query, wcslen(pQuery)+10, "%S", pQuery); // この行まで実行すると、中国語に遭遇し、Query が空文字列となり、エラーメッセージが表示されます: Error: Query was empty query: UPDATE tb_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments_test_pat SET comments='Chinese'.test_pat SET comments='Chinese'

この問題を解決できますか? ありがとうございました!私は64ビットです

 
Jiayou Hu:

まだ動作しませんが、問題を見つけました。

bool __stdcall MySqlExecute( int pConnection, wchar_t* pQuery)

{

...

char Query[16384];

sprintf_s(Query, wcslen(pQuery)+10, "%S", pQuery); // この行まで実行すると、中国語に遭遇し、Queryが空文字列になり、エラーメッセージが表示されます: Error: Query was empty query: UPDATE tb_test_pat SET comments='Chinese'.test_pat SET comments='Chinese'.

この問題を解決できますか? ありがとうございました!私は64ビットです。

はい、"sprintf_s "と "sprintf's "は中国語をサポートしていません。私はこの問題を解決するためにあなたを助けるために試してみます。
 
また、この場合UTF-8は使用できず、UTF-16のみとなる。
 
Eugeniy Lugovoy:
また、この場合、UTF-8は使用できず、UTF-16しか使用できない!
これはどういう意味ですか?データベースのエンコーディングをUTF-16にするということですか?それとも中国語の文字列をUTF-16に変換するという意味ですか?