Background Image

FORUM

조회 수 15617 추천 수 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
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4262
976 자동증가값을 키로 사용하는 경우에 대해 질문 있습니다. 1 하늘나무 2017.07.19 749
975 자료 저장시 속도가 느려집니다. 1 푸른잔디 2009.12.11 9475
974 자바 함수 사용중에 jdbc 접속오류 발생 1 file go 2022.03.24 63
973 자바 + C 연동 끊김현상 1 secret 도제마 2014.07.14 13
972 자바 배치 쉘 수행시 큐브리드 이중화 설정 1 jeinhe 2022.04.18 75
971 자바 저장 프로시저 서버 기동 문의 1 준88 2022.09.27 66
970 자바 저장함수 속도 관련문제요.. 1 owlowl 2016.08.11 14115
969 자바 펑션(프로시저) 등록시 클래스를 못찾습니다.(jar) (수정) 1 닐릴리 2019.02.14 392
968 자바 프로시저 작성 문의입니다. 2 제발좀 2009.07.30 12313
967 자바 함수 문제 현상 1 secret 배운다큐브 2014.06.11 10
966 자바 함수 생성후 결과값 확인을 어떻게 하는지?? 3 이석희 2009.03.05 18741
965 자바_큐브리드 쿼리에 대한 질문입니다. 2 file 존케이 2012.04.05 7504
964 자바를 연결하려고 합니다. 3 하이에나 2009.11.09 12933
963 자바저장함수와 join 오류 1 file 퐁퐁 2017.09.13 338
962 자바초본데요... 톰켓에서 설정하는법좀알려주세요 2 배우자.. 2009.07.23 8859
961 자바프로그램 연결 에러 7 지니 2009.09.07 13566
960 자바함수 사용시 데이터 누락 되는경우가 있는거같습니다 1 양석규 2020.05.19 247
959 자연조인문제 1 dfahwh 2023.09.17 61
958 잦은 트랜잭션으로 인한 마스터서버의 다운 문제. 6 노랑배 2012.02.16 14659
957 재구성 후 확인방법. 2 철이 2016.09.02 12411
Board Pagination Prev 1 ... 146 147 148 149 150 151 152 153 154 155 ... 199 Next
/ 199

Contact Cubrid

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