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

C++빌더 Q&A
C++Builder Programming Q&A
[17953] MDB 테이블의 유니코드 레코드 데이타 가져오는 또다른 방법
이건식 [] 1517 읽음    2002-04-26 07:36
볼랜드 포럼 싸이트의 도움을
많이 받고 있습니다.
그래서 저도 자그마한 팁하나를 올리겠습니다.

유니코드로 된 레코드 데이타를 가져오는 방법에 대해
시샵님께서 다음과 같은 도움말을 게재했습니다.

    WideString temp =((TWideStringField *)(ADOTable1->FieldByName("D_WORD")))->AsString;

위의 방법 말고 다음과 같이 해도 유니코드 데이타를 MDB에서 가져올 수 있답니다.

    WideString temp =(WideString)ADOTable1->FieldByName("D_WORD")->Value;

MDB에서 유니코드를 가져오는 방법은 다음과 같습니다.

  //변수 선언
        // 유니코드 스트링 데이터 형
        wchar_t wstr[100];
        // MS의 COM과 볼랜드씨빌더가 유니코드 데이터를 주고 받는 데이터형
        WideString temp;
        // ODBC로 MDB파일에 접속하는 연결 스트링
        // SWORD 는 MDB 파일
        const String ConnStr ="Provider=MSDASQL.1;Persist Security Info=False;Data Source=SWORD";

        if(!ADOConnection1->Connected)
        {
   //유니코드 데이터 가져오기
         //MDB 파일 접속 
         ADOConnection1->ConnectionString =ConnStr;
         ADOTable1->ConnectionString =ConnStr;
         //테이블 지정
         // PTABLE은 SWORD.MDB의 테이블 중 하나
         ADOTable1->TableName="PTABLE";
         // 테이블 데이터 셑 열기
         ADOTable1->Open();
      // 유니코드 데이터 가져오기
         WideString temp =(WideString)ADOTable1->FieldByName("D_WORD")->Value;
         // WideString을 wchar_t 데이터로 변환하기
         wcscpy(wstr,(wchar_t *)temp);
         // wchar_t 데이터의 조작
         wstr[0]=0x3400;
         //조작된 wchar_t 데이터를 WideString으로 변환
         temp=(WideString)wstr;
      //유니코드 데이터 입력하기
            ADOTable1->Append();
            ADOTable1->FieldByName("ITEM")->Value=temp;
            ADOTable1->Post();

       } 


다음은 접속된 MDB 파일에다가 테이블을 생성하는 예제입니다.


     ADOCommand1->Connection=ADOConnection1;
     ADOCommand1->ConnectionString =ConnStr;
     //ATABLE 생성
     ADOCommand1->CommandText="CREATE TABLE ATABLE(NAME CHAR(20), AMOUNT NUMBER)";
     ADOCommand1->Execute();
     //STABLE 생성
     ADOCommand1->CommandText="CREATE TABLE STABLE(ITEM CHAR(60), WORD CHAR(120))";
     ADOCommand1->Execute();

볼랜드 포럼 운영자께 감사 말씀
전합니다.





+ -

관련 글 리스트
17953 MDB 테이블의 유니코드 레코드 데이타 가져오는 또다른 방법 이건식 1517 2002/04/26
17958     Re: 팁은 Tip'N Tricks에 올려주세요. (내용無) 김백일 1016 2002/04/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.