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를 이용하면 데이타를 가지고 오지
못해서 데이타 처리가 안됩니다.
내부 에러로 보입니다. 확인 부탁합니다.