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
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4443
1087 [테이블의 하위 페치 중]만 계속 나오면서 DB의 테이블을 보여주지 않고 있습니다. 4 secret 어려운큐브 2011.10.11 12
1086 이미지사진파일 업로드 방법 1 우주와나 2011.10.10 11964
1085 윈도우 64Bit 버전에서 PHP에 Cubrid 모듈 올리는 방법좀 .. 1 삼돌이 2011.10.08 11868
1084 테이블 생성, 삭제, 백업 등이 되지 않습니다. 2 sugarkane 2011.10.06 7635
1083 함수 실행시 한글 깨짐 현상 4 대규 2011.10.05 11849
1082 데이터 베이스 생성이 되지 않습니다.. 1 삼돌이 2011.10.05 8042
1081 쉘스크립트파일이 cron으로는 실행이 되지않습니다. 2 secret 어려운큐브 2011.10.05 10
1080 뷰 테이블 검색 시간에 대해 궁금한점이 있습니다. 9 종이 2011.10.05 9715
1079 콘솔에서 csql로 접속할 때 인코딩 설정은 어떻게 하나요? 3 안지민 2011.09.29 11728
1078 4.0 패치2 는 언제쯤 나오나요? 3 유니콘 2011.09.28 6864
1077 8.4로 업그레이드후 cci_execute 실패 에러 10 천상하늘 2011.09.23 9126
1076 DB 접속실패 ( 7 file psygrapher 2011.09.21 11562
1075 테이블 목록확인 (show tables) 방법 문의 3 mkengnr 2011.09.20 20176
1074 Hibernate로 페이징 처리시 오류발생에 대한 내용입니다. 4 백화요란 2011.09.16 12913
1073 select count 한 개수와 select 한 개수가 다른이유는 뭘까요? 4 file 인경수 2011.09.16 11911
1072 계층적질의 결과물과 조인 시 문제점 2 하루야 2011.09.09 9489
1071 ROW_NUMBER() OVER(PARTITION BY 어떻게..해야 할까요??? 5 초식곰 2011.09.09 26455
1070 Oracle의 stored function/procedure에 대한 질문입니다. 2 배나온천사 2011.09.06 10032
1069 호스트 연결이 안되요.(비밀번호오류) 2 양희종 2011.09.06 13916
1068 큐브리드를 시작할수없습니다. 2 SoMa 2011.09.04 9383
Board Pagination Prev 1 ... 141 142 143 144 145 146 147 148 149 150 ... 200 Next
/ 200

Contact Cubrid

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