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
[15405] [질문] 데이터베이스 테이블에 한글 입력 문제.
임문환 [] 1189 읽음    2002-02-08 17:07

질문 요지:
MS Windows 운영체게 상에서 ODBC를 통해 MS Access, MYSQL Database에 갱신 질의(insert into)를 행할 때 한글처리 문제.


아래와 같은 함수가 있을 때 AddNewMember("member1","someone");
하면 아무런 문제 없이 DB에 입력됩니다.
하지만 AddNewMember("회원1","아무개"); 하면 Test DB의 member 테이블의
id와 name 필드에 모두 #이 입력되고 맙니다.
즉, 한글처리가 제대로 되지 않았다는 의미지요.

제가 여러가지로 테스트해본 결과 TTable을 사용하면 한글 문제를 일부 해결할 수 있더군요.
그 해결책이란 TTable의 SetData 함수를 사용하여
Table1->FieldByName("id")->SetData((void*)id.Trim().c_str(),true); 와 같이 하는 것이지요.
하지만 그 경우 모든 레코드들을 가져다 놓고 작업해야 하므로 로드가 많이 걸릴 수 밖에 없는
심각한 문제가 발생하므로 곤란합니다.

그렇다면 결과집합이 없고 또 사용할 필요가 없는 갱신 질의의 경우 어떻게 해야 한글을 제대로 입력시킬 수 있을까요?

참고로 Access나 MySQL 모두 전용 클라이언트 상에서 직접 레코드를 입력하면 한글이 문제 없이 입력됩니다.
예를 들어, MySQL의 경우 콘솔 창에서 mysql에 로그인한 후 키보드를 통하여
insert into member1 (id,name) values('회원1','하무개'); 하면 제대로 입력이 됩니다.

고수님들의 한 수 지도를 부탁드립니다.

bool AddNewMember(String id, String name)
{
if(id=="" || name=="") return false;

try{
  TQuery *query = new TQuery(Application);
  query->Active=false;
  query->DatabaseName="Test";
  query->SQL->Clear();

  String strQuery;
  strQuery = "insert into member (id,name)");
  strQuery = strQuery + " values (\'" + id + "\',\'" + name + "\')";
  query->SQL->Add(strQuery);

  query->ExecSQL();
  delete query;
}catch(...){
  return false;
}
return true;

}


+ -

관련 글 리스트
15405 [질문] 데이터베이스 테이블에 한글 입력 문제. 임문환 1189 2002/02/08
29871     Re:[질문] 데이터베이스 테이블에 한글 입력 문제. 김상구.패패루 790 2002/02/08
15423     Re:[질문] 데이터베이스 테이블에 한글 입력 문제. 김상구.패패루 1241 2002/02/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.