|
볼랜드 포럼 싸이트의 도움을
많이 받고 있습니다.
그래서 저도 자그마한 팁하나를 올리겠습니다.
유니코드로 된 레코드 데이타를 가져오는 방법에 대해
시샵님께서 다음과 같은 도움말을 게재했습니다.
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();
볼랜드 포럼 운영자께 감사 말씀
전합니다.
|