Discusión sobre el artículo "Trabajo con el SGBD MySQL desde MQL5 (MQL4)" - página 10

 
mi correo electrónico: 178255721@qq.com
 
 
1982EAcsc :

Hola, parece que MySQL denegar la conexión para el usuario ODBC en localhost.

Usted puede tratar de comprobar 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...
 

Hola Eugeniy Lugovoy.

He utilizado MQLMySQL para implementar la consulta común, insertar, actualizar, eliminar las operaciones, pero hay un problema, no se puede insertar chino, consulta fuera de los chinos también es confusa, me gustaría preguntar, que el proceso de envasado de middleware han establecido la codificación? Quiero preguntar, ¿usted proceso de empaquetado middleware ha establecido el código? El fenómeno es el siguiente:

DROP TABLE IF EXISTS `tb_test_pat`;

CREAR TABLA `tb_test_pat` (

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

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)

tendencia` int(10) NOT NULL, `puntos` int(10)

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

`comments` text CHARACTER SET utf8,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Error al insertar chino

Error: La consulta estaba vacía query: 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,'Prueba 12')

Inserción inglesa correcta

Exitoso: INSERT INTO tb_test_pat (tendencia, símbolo, hora_inicio, hora_fin, puntos, comentarios) VALUES (1,'EURUSD','2014.12.16 13:00','2014.12.17 20 :00',8,'abc')


¿Para qué sirve esto?

 
Jiayou Hu:

Hola Eugeniy Lugovoy.

He utilizado MQLMySQL para implementar la consulta común, insertar, actualizar, eliminar las operaciones, pero hay un problema, no se puede insertar chino, consulta fuera de los chinos también es confusa, me gustaría preguntar, que el proceso de envasado de middleware han establecido la codificación? Quiero preguntar, ¿usted proceso de empaquetado middleware ha establecido el código? El fenómeno es el siguiente:

DROP TABLE IF EXISTS `tb_test_pat`;

CREAR TABLA `tb_test_pat` (

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

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)

tendencia` int(10) NOT NULL, `puntos` int(10)

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

`comments` text CHARACTER SET utf8,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Error al insertar chino

Error: La consulta estaba vacía query: 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,'Prueba 12')

Inserción inglesa correcta

Exitoso: INSERT INTO tb_test_pat (tendencia, símbolo, hora_inicio, hora_fin, puntos, comentarios) VALUES (1,'EURUSD','2014.12.16 13:00','2014.12.17 20 :00',8,'abc')


¿Para qué sirve esto?

Puedes intentar ejecutar el siguiente comando después de conectar MySQL.

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

Es posible que alguna de estas opciones no esté configurada en UTF.

 

Otra solución es ejecutar los siguientes comandos uno a uno después de la conexión.

SET NAMES 'utf8

SET CHARACTER SET 'utf8

SET SESSION collation_connection = 'utf8_general_ci'

 
Eugeniy Lugovoy:

Otra solución es ejecutar los siguientes comandos uno a uno después de la conexión.

SET NAMES 'utf8

SET CHARACTER SET 'utf8

SET SESSION collation_connection = 'utf8_general_ci'

Sigue sin funcionar, pero he encontrado el problema

bool __stdcall MySqlExecute( int pConnection, wchar_t* pQuery)

{

...

char Query[16384];

sprintf_s(Query, wcslen(pQuery)+10, "%S", pQuery); // Cuando se ejecuta esta línea, se encuentra el idioma chino y Query se convierte en una cadena vacía, lo que da lugar a un mensaje de error: 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 test_pat SET comments='Chino'

¿Puede ayudar a solucionar este problema? Muchas gracias. Soy 64 bit

 
Jiayou Hu:

Sigue sin funcionar, pero he encontrado el problema

bool __stdcall MySqlExecute( int pConnection, wchar_t* pQuery)

{

...

char Consulta[16384];

sprintf_s(Query, wcslen(pQuery)+10, "%S", pQuery); // Al ejecutar hasta esta línea, se encontró chino, y Query se convirtió en una cadena vacía dando lugar a un mensaje de error: Error: Query was empty query: UPDATE tb_test_pat SET comments='Chinese'. tb_test_pat SET comments='Chino'

¿Pueden ayudarme a solucionar este problema? Muchas gracias. Soy 64 bit

Sí, "sprintf_s" y "sprintf's" no soportan chino. Voy a tratar de ayudarle a solucionar este problema
 
Además, en este caso no se puede utilizar UTF-8, sino sólo UTF-16.
 
Eugeniy Lugovoy:
Tampoco se puede utilizar UTF-8 en este caso, ¡sólo UTF-16!
¿Qué significa esto? ¿Significa establecer la codificación de la base de datos con UTF-16? ¿O significa convertir la cadena china a UTF-16?