[VB] MyOleDB (mysql) 에서 한글 문제 해결
페이지 정보
조회
22,221
본문
한글을 사용하는데 문제가 있음을 알수 있습니다..
아마 VC등에서도 같을거 같습니다.
원인을 살펴보니깐..
myoledb com객체에서 유니코드(wchar)로 받은 스트링을..
ascii(char)로 변환하는 과정에서 문제가 있더군요..
myoledb 소스의
CCommand::Prepare 에서 이를 찾을수 있습니다.
// Convert SQL text
부분을 찾으셔서 그 아랫부분의 내용을 다음과 같이 고쳐주시면 됩니다.
int cCharsLen = WideCharToMultiByte(CP_ACP, 0, m_pwszCommand, nLen, NULL, 0, NULL, NULL);
m_pszSQL = new char[cCharsLen + 1];
if (m_pszSQL == NULL)
return E_OUTOFMEMORY;
int cCharsCopied = WideCharToMultiByte(CP_ACP, 0, m_pwszCommand, nLen, m_pszSQL, cCharsLen, NULL, NULL);
if (cCharsCopied != cCharsLen)
{
delete [] m_pszSQL;
return E_FAIL;
}
m_pszSQL[cCharsLen] = 0;
여러 가지 테스트를 해보지 않아서 다른 곳에서도 이와 같은 문제가 있을지도 모르겠습니다.
고쳐서 컴파일한 MyProv.dll을 같이 올립니다.
[이 게시물은 nuno님에 의해 2007-01-24 00:45:05 Etc.에서 이동 됨]
관련자료
-
첨부
등록된 댓글이 없습니다.