window 7 32bit, 64bit 동일
ODBC Driver : CUBRID_ODBC-9.3.0-win32-x64
CUBRID-Windows-x64-9.3.0.0206.exe
CUBRID-Windows-x86-9.3.0.0206.exe
CUBRID TOOL Ver. : CUBRIDManager-2014-build-0651-windows-i386.exe
응용 환경(API) :
엑셀 VBScript 를 통해 ODBC 로 연결 :
오류 내용 : ODBC로 접속할 경우 UTF-8로 접속을 해도 char(1) 을 byte 로 인식하고 있은 문제인듯 함
[1] ------ table and data script ------
CREATE TABLE aTemp( a CHAR(1), nm VARCHAR(3)) ;
INSERT INTO aTemp(a, nm) VALUES( '남', '홍길동'), ('여','신사임당');
COMMIT;
[2] CUBRID manager 를 통해서 조회 할 경우
SELECT * FROM aTemp;
남, 홍길동
여, 신사임
<< 정상 출력었음>>
[3] 그러나 ODBC를 통해 조회할 경우 : 깨져서 나오고 있음.
SELECT * FROM aTemp
?, 홍?
?, 신?
---------------- VBScript --------------------
Option Explicit
Public adoconn As ADODB.Connection
Public rs As ADODB.Recordset
Public Sub odbc_utf8_test()
Dim constr As String
Dim n As Long
' connection
constr = "Driver={CUBRID Driver};server=localhost;port=33000;uid=dba;pwd=dba!00;db_name=school;charset=UTF-8;"
Set adoconn = New ADODB.Connection
adoconn.connectionString = constr
adoconn.ConnectionTimeout = 10
adoconn.Mode = adModeReadWrite
adoconn.CursorLocation = adUseClient
adoconn.open
' connection ok then execute SQL
Set rs = adoconn.Execute("select * from aTemp")
If rs.EOF Then
Else
For n = 1 To rs.RecordCount Step 1
ActiveSheet.Cells(n, 1) = rs("a")
ActiveSheet.Cells(n, 2) = rs("nm")
Debug.Print rs("a"), rs("nm")
rs.MoveNext
Next
End If
Set rs = Nothing
adoconn.Close
Set adoconn = Nothing
End Sub
[5] DB 성성과 {en_US.UTF-8, ko_KR.UTF-8} X ODBC접속{ko_KR.UTF-8, UTF-8} 로 시도 했으나 동일한 오류 결과를 얻었음.
DB성생 : ko_KR.UTF-8 , constr 의 charset=UTF-8 : 동일결과
DB성생 : ko_KR.UTF-8 , constr 의 charset=ko_KR.UTF-8 : 동일결과
DB성생 : en_US.UTF-8 , constr 의 charset=UTF-8 : 동일결과
Window7 32bit, Linux 64bit 등 | |
[cubrid_rel] 수행 결과 | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------