ODBC 를 통할 경우 텍스트 잘림

by OO준 posted Dec 22, 2014

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  : 동일결과






질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력

* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축

-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------


Articles