기고글 토론 "MQL5(MQL4)에서 MySQL 데이터베이스에 액세스하는 방법" - 페이지 10

 
내 이메일: 178255721@qq.com
 
 
1982EAcsc :

안녕하세요, MySQL이 로컬 호스트에서 사용자 ODBC에 대한 연결을 거부하는 것 같습니다.

스택오버플로우를 확인해 보세요: 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) 부호 없는 NOT NULL AUTO_INCREMENT, `id` int(10) 부호 없는 NOT NULL AUTO_INCREMENT, `symbol` varcharchitecture

`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) 부호 없는 제로필 NOT NULL, `comments` text CHARACTERIC

`comments` text CHARACTER SET utf8,

PRIMARY KEY (`id`)

) 엔진=InnoDB 기본 문자 집합=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')

영어 삽입 성공

성공: 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) 부호 없는 NOT NULL AUTO_INCREMENT, `id` int(10) 부호 없는 NOT NULL AUTO_INCREMENT, `symbol` varcharchitecture

`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) 부호 없는 제로필 NOT NULL, `comments` text CHARACTERIC

`comments` text CHARACTER SET utf8,

PRIMARY KEY (`id`)

) 엔진=InnoDB 기본 문자 집합=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')

영어 삽입 성공

성공: 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 세션 콜레이션_연결 = 'utf8_general_ci'

 
Eugeniy Lugovoy:

연결 후 다음 명령을 하나씩 실행하는 또 다른 방법도 있습니다.

SET NAMES 'utf8'

SET CHARACTER SET 'utf8'

SET 세션 콜레이션_연결 = 'utf8_general_ci'

여전히 작동하지 않지만 문제를 발견했습니다.

bool __stdcall MySqlExecute( int pConnection, wchar_t* pQuery)

{

...

char Query[16384];

sprintf_s(Query, wcslen(pQuery)+10, "%S", pQuery); // 이 줄로 실행하면 중국어가 발생하여 Query가 빈 문자열이 되어 오류 메시지를 출력합니다: 오류: 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 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가 빈 문자열이 되어 오류 메시지가 나타납니다: 오류: Query가 빈 쿼리: UPDATE tb_test_pat SET comments='Chinese'. test_pat SET comments='Chinese'

이 문제를 해결하는 데 도움을 주실 수 있나요? 정말 감사합니다! 저는 64비트입니다.

예, 'sprintf_s'와 'sprintf'는 중국어를 지원하지 않습니다. 이 문제를 해결하도록 도와드리겠습니다.
 
또한 이 경우 UTF-8은 사용할 수 없고 UTF-16만 사용할 수 있습니다.
 
Eugeniy Lugovoy:
또한 이 경우 UTF-8은 사용할 수 없고 UTF-16만 사용할 수 있습니다!
무슨 뜻일까요? 데이터베이스 인코딩을 UTF-16으로 설정하라는 뜻인가요? 아니면 중국어 문자열을 UTF-16으로 변환하는 것을 의미하나요?