XE4에서 MySQL 연결시 접속 오류및 한글 문제로 고생을 했는데 여러 시행착오 끝에 거의 해결 되어 정보 공유 합니다.
XE4에서 발생한 문제이나 하위버전도 비슷할 것으로 판단 됩니다.
* DBExpress MySQL 접속오류
- MySQL 최신버전은 DBExpress 에서 완벽하게 지원을 못하는듯 합니다.
XE4에서는 MySQL 5.1.71(win32) 을 설치하니 접속 됩니다. 따라서 연결 오류시 MySQL 하위버전으로 해보시기 바랍니다.
- MySQL 설치후 libmySQL.dll 파일을 찾아서 Delphi\Bin 폴더나 Windows\system32 폴더에 복사해야 합니다.
때로는 libmySQL.dll 파일만 하위버전으로 맞춰도 되는 경우가 있을수 있습니다.
* 한글깨짐 문제 해결
- 데이터베이스 스키마 생성과 테이블 컬럼 모두 character Set = utf8 / collation = utf8_unicode_ci 로 설정합니다.
인터넷검색해보면 utf8 이니 euckr 이니 여러 의견들이 많은데 utf8로 통일 시키는것이 맞는것 같네요
(euckr로 하면 조회는 되나 입력이 안됩니다.)
MySQL 사이트에서 Workbench를 다운받아 설치하면 좀더 쉽게 설정 할수 있습니다.
- 델파이 소스에서 최초 DB 접속시
SQLConnection1.Params.Append('ServerCharSet=utf8');
SQLConnection1.Connected := True;
와 같이 커넥션 속성을 추가 합니다.
- 델파이 소스 파일 포멧을 UTF-8 로 바꿉니다. (소스 에디터 바탕화면 > 마우스우클릭 > File Format )
[참고] 델파이의 Data Explorer 에서 MySQL 테이블을 View 해보면 한글이 여전히 깨져 보이나 실제 입출력과는 무관하므로 무시해도 됩니다. MySQL Workbench를 사용하면 한글이 깔끔하게 조회/입력 됩니다.
'델파이' 카테고리의 다른 글
시간차이 계산. (0) | 2019.09.25 |
---|---|
우체국에서 제공하는 api를 사용하여 도로명 주소를 가지고 오는 소스 (0) | 2019.09.25 |
E1026 File not found: Controls.res (0) | 2019.09.24 |
Virtual Key Codes (0) | 2019.09.23 |
화면 캡쳐하기 (0) | 2019.09.23 |