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
[14895] Re:Re:MS-SQL 2005에서 한글이 ?????로 깨집니다.
김용무 [] 2892 읽음    2013-12-10 18:01
도움에 정말정말 감사드립니다.ㅠㅠ
적어 주신글에 CommandText가 widestring 이면 된다고 하셔서.. 저걸 써본적없어서..

ADODataSet을 사용하여서 아래와 같이 적었는데 확인좀 부탁드려요.
var
  field_N : Widestring
begin
        with ADODataSet1 do
        begin
          CommandType := cmdText;
          CommandText := 'select * from View_Table where card_no =N'''+trim(Card_no.text)+'''';
          open;
          Afield:=TFields.Create(ADODataSet1);
          field_N := '';
          Afield.Fields[0].GetData(@field_N,True);
          memo1.Lines.Text :=  field_N;
          Free(Afield);
        end;
end;

제가 부득이하게 ..초보인관계로.. 이해가 어려운 것이 많습니다.. 열심히 배우겠습니다..



오랑캐꽃 님이 쓰신 글 :
: 사용하시는 델파이 버전이 2009 아래 것이라면, asString 구문이 문제가 됩니다.
: 델파이의 String <-> WideString 자동 변환은 알고 쓰면 편하고 신묘하지만 모르고 쓰면 헬...
:
: 아래 링크를 찬찬히 읽어보시구요...
: http://oranke.tistory.com/14
:
: 간단히 요약하면, 모든 안시 코드 기반 프로그램은
: "제어판-> 국가및언어-> 유니코드를 지원하지 않는 프로그램용 언어" 항목에서 설정된
: 코드페이지를 기반으로 표현할 수 없는 문자는 '?'로 대체됩니다.
: 델파이로 만든 프로그램 역시 마찬가지입니다.
:
: 해결방법은... AsString 대신, TField 의 GetData 를 직접 때려서 유니코드로 받아오세요.
:
: 쿼리 던질 때 사용하는 ADODB.pas 의 CommandText 는 다행히 WideString으로 정의되어 있어서
: 파라미터 기능을 배제하고 쿼리문을 직접 조합해 던지면 별 문제 없을꺼에요.
:
:  ADOQuery.Command.ParamCheck := False ;
:  ADOQuery.CommandText := 'SELECT... 어쩌구 저쩌구... ';
:
: 예전에 만들었던 게임에서도 델 5와 MSSQL를 써서 이 방법으로 한중일유럽대만에서 별 문제 없었습니다. ^^;;
: 내친김에 DB.pas를 수정, AsString을 참고로 AsWideString을 구현해두시면 두고두고 편하죠~~ ^^;;
:
:
:
: 김용무 님이 쓰신 글 :
: : 현재
: : 서버PC의 View Table을 사용하는데요. 이쪽은 한글 윈도우에 한글 MS-SQL 2008을 사용중입니다.
: :
: : 그런데 저는
: : 운영PC 영문윈도우에 독일 MS-SQL 2005를 사용중입니다.
: : 물론 한글 언어 추가 했습니다.
: :
: :
: : 문제는
: : MS-2005 studio에서 그짝 서버로 접속해 쿼리를 적어서 select * from View_Table 을 검색하게 되면 한글이 잘나오더라구요.
: :
: :
: : 그런데 이걸 이제 프로그램에 적용해서  ADOQuery 로 ODBC로 연결해서 language Setting도 Korean으로 하고
: :
: :
: : SQLTxt := 'select * from View_Table'을 적용한뒤 데이터를 Fieldbyname('Data').asString형으로 받아서
: : MS-2005에 사용하는 Table 에 넣기만 하면 한글이 ???로 에러가 나는군요.
: :
: :
: :
: : 그래서 보니 View_table은 한글이라 Varchar(4000) 으로 되어있고 제가 사용하는 테이블은 ntext 를 사용하고 있습니다.
: : 유니코드형을 사용하고 있는데..
: : 그래서 가져올때 SQLTxt := 'select Data collate korean_wansung_ci_as Data from View_Table' 이렇게 하여 한글로 바꾼다음에 테이블에 넣어 줘도 ???? 로 나오는군요...
: :
: : 개별 검색 할때도 SQLTxt := 'select Data collate korean_wansung_ci_as Data from View_Table Data_n = N'123123''
: : 이렇게 N을 넣어서도 불러 와도 안되네요..
: :
: : 혹시 버젼 문제 일수 있을까요?
: : MS-2005에서 2008이 다른 PC도 SQL Studio에서  잘안된다고 서버PC담당자가 말씀하시더라구요.
: :
: :
: : 그런데 서버PC View Table을 동일 사향의 2005 버젼에서 사용해도 Studio에서는 select하면 한글이 나오는데 프로그램에 적용시키면 한글이 ????? 나오는군요..
: :
: :
: : 검수 완료일이 이번주라.. 현재 마음은.. 마치 꼬인 실타래 처럼..복잡하군요.. 이럴거라곤 생각도 못했거든요..
: :

+ -

관련 글 리스트
14893 MS-SQL 2005에서 한글이 ?????로 깨집니다. 김용무 2415 2013/12/10
14898     Re:MS-SQL 2005에서 한글이 ?????로 깨집니다. 김용무 2638 2013/12/12
14900         Re:Re:MS-SQL 2005에서 한글이 ?????로 깨집니다. 오랑캐꽃 2211 2013/12/13
14902             Re:Re:Re:MS-SQL 2005에서 한글이 ?????로 깨집니다. 김용무 2308 2013/12/13
14907                 Re:Re:Re:Re:MS-SQL 2005에서 한글이 ?????로 깨집니다. 오랑캐꽃 2971 2013/12/17
14912                     Re:Re:Re:Re:Re:MS-SQL 2005에서 한글이 ?????로 깨집니다. 김용무 3463 2013/12/19
14894     Re:MS-SQL 2005에서 한글이 ?????로 깨집니다. 오랑캐꽃 2621 2013/12/10
14895         Re:Re:MS-SQL 2005에서 한글이 ?????로 깨집니다. 김용무 2892 2013/12/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.