Обсуждение статьи "Работа с СУБД MySQL из MQL5 (MQL4)" - страница 10

 
мой e-mail: 178255721@qq.com
 
 
1982EAcsc :

Здравствуйте, похоже, что MySQL запрещает соединение для пользователя ODBC на localhost.

Вы можете попробовать проверить 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...
 

Здравствуйте Евгений Луговой.

Я использовал 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)

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

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

`comments` 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')

Английская вставка прошла успешно

Succeeded: 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:

Здравствуйте Евгений Луговой.

Я использовал 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)

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

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

`comments` 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')

Английская вставка прошла успешно

Succeeded: 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.

 

Еще одно решение - выполнять следующие команды по очереди после подключения.

SET NAMES 'utf8'

SET CHARACTER SET 'utf8'

SET SESSION collation_connection = 'utf8_general_ci'

 
Eugeniy Lugovoy:

Еще одно решение - выполнять следующие команды по очереди после подключения.

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 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?