답변 아주 감사합니다. ^^ 말씀 하신대로 해당 필드의 캐릭터셋을 UNICODE_LE, UNICODE_UCS2LE 로 정의해서 테이블을
생성하려고 했더니 정의가 되지 않았다고 메세지가 나오면서 생성이 되지 않네요. 'UNICODE_FSS'는 잘 되는데요...
참고로 제가 기본적인걸 놓치고 있었던 거 같네요. 오늘 아침에 테스트를 할때
ShowMessage(ParamByName('PrintMemo').asstring := ADBMemo); 해보니 이미 베트남어가 깨져 있더라구요. 그러니까
DB의 테이블에 쓰여지기 전에 이상이생겼던 거지요. 이걸 해결하면 될꺼는 같은데 좀 더 삽질을 해봐야 겠습니다.
오랑캐꽃님의 링크 해주신 글은 천천히 읽어보고 다시 한 번 테스트 해봐야 겠습니다. 정말 감사합니다.
오랑캐꽃 님이 쓰신 글 :
: 인터베이스는 써볼일이 없어서 잘 모르겠습니다만...
:
: 델파이 2010이라면 다루는 문자열이 "리틀엔디안 유니코드" 일테고
: 따라서 인터베이스의 캐릭터셋도 UNICODE_LE / UCS2LE 로 맞추는게 좋지 않을까요??
:
http://www.ibexpert.net/ibe/index.php?n=Doc.InterBaseCharacterSetsAndCollationOrders
: 현재 들고 있는 값을 "어떻게" 저장할지와, 저장된 값을 "어떻게" 들어올리느냐가 항상 관건이니까요.
:
: 여담이지만 제 경우 SQLIte, MySQL(MariaDB) 와 델파이 2006 또는 XE2를 사용합니다.
: DB에 저장할 때는 UTF-8, 어플리케이션에서 들고있을 때는 리틀엔디안 유니코드를 쓰고 있네요.
:
https://www.delmadang.com/community/bbs_view.asp?bbsNo=17&st=S&indx=420028
:
:
:
: 서기 님이 쓰신 글 :
: :
: : 앞서 비슷한 문제로 고민 하신 분들의 글과 댓글들 검색해봤고 그에 따라 소스도 수정해 보았는데 잘 되지 않아 다시 질문 드립니다. 소스의 일부를 적어 봅니다. 같은 종류의 에러로 고생 하신분들이나 해법을 알고 계신분들의 도움을 바라겠습니다.
: :
: : [소스의 일부분]
: : procedure TMainProcess.InsertHistory(Memo: String);
: : var
: : ADBMemo : String;
: : begin
: : -생략-
: : ADBMemo := Format('%-34s %-20s %-8s', [ALocation, AMsgName,
: : FormatDateTime('yyyy-m-d hh:mm:ss', ADateTime)]);
: :
: : with Q_HistoryW do begin
: : Close;
: : Sql.Clear;
: : Sql.Add('INSERT INTO HISTORY(MEMO) values(:PrintMemo));
: :
: : ParamByName('PrintMemo').asstring := ADBMemo;
: : .
: : .
: : .
: : [소스의 일부분]
: :
: : 소스에서 ALocation과 AMsgName에 베트남어가 입력되는데 깨지는 상태로 DB 테이블에 입력이 되는군요.
: :
: : 현재 사용중인 시스템과 델파이,DB의 버전은 윈도우7, 델파이2010, 인터베이스(윈도우즈 NT 6.1 빌드 7601)입니다. 델파이2010의 화면에서는 베트남어가 당연히 잘 보여지구요. 인터베이스의 DB는 캐릭터셋을 NONE으로 설정 하여 사용중입니다.
: :
: : DB단의 문제인 듯 싶어서 소스의 SQL문은 그대로 두고 DB 전체를 UNICODE_FSS로도 해보고 DB를 생성할때 캐릭터셋을 NONE으로 하고 HISTORY 테이블의 MEMO 필드만을 UNICODE_FSS로 해보아도 베트남어는 계속 깨져서 입력이 되는군요. 제 생각에는 델파이2010이 이미 유니코드를 지원하고 있고 테이블의 MEMO 필드의 속성을 UNICODE_FSS로 하면 위의 SQL문으로 입력할때 깨지지 않아야 할 것 같은데 참 안되네요. 참고로 IBCONSOLE(인터베이스 관리프로그램)의 SQL 작성시에 델파이 소스에 있는 베트남어를 포함한 인써트문으로 입력을 하니 SQL창에서도 베트남어가 깨지더군요. ^^;; 어떤 부분을 변경해줘야 할 지 도움 부탁드리겠습니다. 그럼, 수고들 하십시요.
: :
: :
: :
: :
: :
: :
: :