Background Image

FORUM

조회 수 15619 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

ADO란 객체를 이용하여 프로그램을 작성하는데 이 객체는 ODBC나 OLEDB Driver를 이용합니다.
그런데 ADO객체는 connection이나 recordset을 만들 때 cursor의 위치를 지정할 수 있습니다.
ODBC는 server side cursor or client side cursor를 모두 지원하고 있고 잘 동작이 됩니다.

그러나 OLEDB는 client side cursor가 지원이 안되고 있습니다. ADO기본값은 server side cursor입니다.
client side cursor가 지원되지 않으면 많은 개발 툴이나 질의 툴 등에서 문제가 발생합니다.

        ' make ODBC connection string
'        strConn = strConn & "driver={CUBRID Driver};"
'        strConn = strConn & "server=" & UserInfo.ServerIP & ";"
'        strConn = strConn & "port=" & UserInfo.PortNO & ";"
'        strConn = strConn & "uid=" & UserInfo.DBUserID & ";"
'        strConn = strConn & "pwd=" & UserInfo.DBPassword & ";"
'        strConn = strConn & "db_name=" & UserInfo.DBName & ";"

        'make OLEDB connection string
        strConn = strConn & "Provider = CUBRIDProvider;"
        strConn = strConn & "Data Source =" & UserInfo.DBName & ";"
        strConn = strConn & "Location =" & UserInfo.ServerIP & ";"
        strConn = strConn & "User ID =" & UserInfo.DBUserID & ";"
        strConn = strConn & "Password =" & UserInfo.DBPassword & ";"
        strConn = strConn & "Port =" & UserInfo.PortNO & ";"
        strConn = strConn & "Fetch Size = 100;"
        strConn = strConn & "Persist Security Info = True;"

        ' connect to database with ado connection object
        Set GadoConn = New ADODB.Connection
        With GadoConn
          .ConnectionString = strConn
          .ConnectionTimeout = 30      '
          .Properties("Prompt") = adPromptNever ' 이것은 ADO에서 기본 프롬프트 모드입니다.
          .CursorLocation = adUseClient
            .Open
        End With

위의 소스에서 연결 문장을 ODBC를 이용하면 문제가 없이 잘 동작하는데 OLEDB를 이용하면 데이타를 가지고 오지
못해서 데이타 처리가 안됩니다.
내부 에러로 보입니다. 확인 부탁합니다.

  • ?
    cubebridge 2010.01.29 21:28
    현재 내부 확인 중입니다. 
    확인 후 결과를 말씀드리겠습니다.
  • ?
    seongjoon 2010.02.10 00:13

    VB6.0에서 테스트를 해보았습니다.
    제가 테스트에서 사용한 소스 코드는 아래과 같으며, 테스트 결과 odbc와 oledb 모두 정상적으로 값이 출력되었습니다.
    테스트에 사용된 CUBIRD 버젼은 최신 버젼은 CUBRID 2008 R2.1 (8.2.1.0215)입니다.

    '소스 시작
    Private Sub Command1_Click()

        Dim GadoConn As New ADODB.Connection
        Dim cmdCommand As New ADODB.Command
        Dim rstRecordSet As New ADODB.Recordset
        Dim strConn As String
       
        'strConn = strConn & "driver={CUBRID Driver};"
        'strConn = strConn & "server=localhost;"
        'strConn = strConn & "port=33000;"
        'strConn = strConn & "uid=dba;"
        'strConn = strConn & "pwd=;"
        'strConn = strConn & "db_name=demodb;"
     
        strConn = strConn & "Provider = CUBRIDProvider;"
        strConn = strConn & "Data Source = demodb;"
        strConn = strConn & "Location = localhost;"
        strConn = strConn & "User ID = dba;"
        strConn = strConn & "Password =;"
        strConn = strConn & "Port = 33000;"
        strConn = strConn & "Fetch Size = 100;"
        strConn = strConn & "Persist Security Info = True;"

        Set GadoConn = New ADODB.Connection
        With GadoConn
          .ConnectionString = strConn
          .ConnectionTimeout = 30      '
          .Properties("Prompt") = adPromptNever ' 이것은 ADO에서 기본 프롬프트 모드입니다.
          .CursorLocation = adUseClient
          .Open
        End With

        With cmdCommand
            .ActiveConnection = GadoConn
            .CommandText = "SELECT * FROM code;"
            .CommandType = adCmdText
        End With

        With rstRecordSet
            .CursorType = adOpenStatic
            .CursorLocation = adUseClient
            .LockType = adLockOptimistic
            .Open cmdCommand
        End With
       
        If Not rstRecordSet.EOF Then rstRecordSet.MoveFirst
        Do While Not rstRecordSet.EOF
            List1.AddItem rstRecordSet.Fields(0) & ", " & rstRecordSet.Fields(1)
            rstRecordSet.MoveNext
        Loop
      
        GadoConn.Close
       
        Set GadoConn = Nothing
        Set cmdCommand = Nothing
        Set rstRecordSet = Nothing
    End Sub
    '소스 끝


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 105
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4470
939 Spring Boot 2+ JDBC DB Connection pool 오류 3 daniel 2019.11.05 2687
938 큐브리드에 있는 sql데이터를 다른사이트에 표출하는방법 3 꼴통개발자 2019.11.05 181
937 cubrid.conf 설정 질문 드립니다. 2 지옥성녀은비 2019.11.12 538
936 MSSQL -> CUBRID MIGRATION 1 현수 2019.11.15 219
935 elastic logstash에서 JDBC로 CUBRID를 연결하는데 계속해서 실패합니다 1 제냐 2019.11.18 1077
934 Spring boot 2.1.9, Spring Data Jpa 연동이 가능한지 문의드립니다. 1 금룔 2019.11.28 1566
933 컬럼 코멘트 입력 3 그리피 2019.12.09 2573
932 DB 계정 리스트 생성 시 계정 생성일이나 변경일을 알 수 없나요? 1 시나브로72 2019.12.09 286
931 busy 쿼리 자동 종료 문의 2 우동 2019.12.11 224
930 query_editor._sql.log 관련 문의 드립니다. 1 ldev27 2019.12.12 136
929 HA환경 JDBC URL 관련하여 질문드립니다. 2 cubridtest 2019.12.19 1168
928 큐브리드 10.2 버전이 설치가 되지 않습니다. 1 file 종이 2019.12.24 215
927 대량 데이터 INSERT 1 그리피 2019.12.24 1151
926 CUBRID ODBC 오류 문의드립니다 2 Kim 2019.12.26 669
925 큐브리드 HA 구성 후 재기동 절차 관련 질문입니다 1 강성현 2019.12.27 326
924 테스트 서버와 운영서버에 COUNT(*) 쿼리 실행 속도 차이 문의 1 종이 2019.12.29 382
923 CUBRID-JDBC-9.3.2.0016 드라이버 관련 os 호환이 되는지 문의드려요 1 dkkdkdkdkdk 2019.12.30 173
922 CUBRID 10.1.3 COMMENT 추가 방법 문의 3 박종원 2020.01.06 1167
921 큐브리드 버전 문의입니다. 1 행복한이니 2020.01.07 289
920 Cannot communicate with the broker or received invalid packet 오류 문의 드립니다 1 file Kim 2020.01.09 1174
Board Pagination Prev 1 ... 149 150 151 152 153 154 155 156 157 158 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales