Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15264] Re:인터베이스는 안써봐서 잘 모르겠습니다만...
서기 [] 2155 읽음    2014-08-22 16:57
답변 아주 감사합니다. ^^  말씀 하신대로 해당 필드의 캐릭터셋을 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창에서도 베트남어가 깨지더군요. ^^;; 어떤 부분을 변경해줘야 할 지 도움 부탁드리겠습니다. 그럼, 수고들 하십시요. 
: :
: : 
: :
: :
: :   
: : 
: :

+ -

관련 글 리스트
15262 인터베이스에 베트남어 입력오류 서기 2383 2014/08/21
15263     인터베이스는 안써봐서 잘 모르겠습니다만... 오랑캐꽃 5888 2014/08/22
15264         Re:인터베이스는 안써봐서 잘 모르겠습니다만... 서기 2155 2014/08/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.