데이터 편집
ADO를 사용하여 데이터 원본에 연결하고, 명령을 실행하고, Recordset 개체에서 결과를 얻고, Recordset내에서 탐색하는 방법을 설명했습니다. 이 섹션에서는 다음 기본 ADO 작업인 데이터 편집에 중점을 둡니다.
이 섹션에서는 데이터 검사에서 도입된 샘플 Recordset을 계속 사용하되, 중요한 변경 사항이 하나 있습니다. 다음 코드는 Recordset여는 데 사용됩니다.
'BeginEditIntro
Dim strSQL As String
Dim objRs1 As ADODB.Recordset
strSQL = "SELECT * FROM Shippers"
Set objRs1 = New ADODB.Recordset
objRs1.Open strSQL, GetNewConnection, adOpenStatic, _
adLockBatchOptimistic, adCmdText
' Disconnect the Recordset from the Connection object.
Set objRs1.ActiveConnection = Nothing
'EndEditIntro
코드에서 중요한 변경 사항은 GetNewConnection 함수에서 Connection 개체의 CursorLocation 속성을 adUseClient로 설정하는 것으로, 이는 클라이언트 커서의 사용을 나타냅니다. 클라이언트 쪽 커서와 서버 쪽 커서의 차이점에 대한 자세한 내용은 커서 및 잠금이해하세요.
CursorLocation 속성의 adUseClient 설정은 데이터 원본(이 경우 SQL Server)에서 클라이언트 코드(데스크톱 워크스테이션)의 위치로 커서의 위치를 이동합니다. 이 설정은 ADO가 커서를 만들고 관리하기 위해 클라이언트에서 OLE DB용 클라이언트 커서 엔진을 호출하도록 합니다.
LockType 매개 변수는 Open 메서드에서 adLockBatchOptimistic 로 변경된 것을 알아차릴 수도 있습니다. 이렇게 하면 일괄 처리 모드에서 커서가 열립니다. (공급자는 여러 변경 내용을 캐시하고 UpdateBatch 메서드를 호출할 때만 기본 데이터 원본에 씁니다.) Recordset 변경한 내용은 UpdateBatch 메서드가 호출될 때까지 데이터베이스에서 업데이트되지 않습니다.
마지막으로 이 섹션의 코드는 수정된 버전의 GetNewConnection 함수를 사용합니다. 이 버전의 함수는 이제 클라이언트 쪽 커서를 반환합니다. 함수는 다음과 같습니다.
'BeginNewConnection
Public Function GetNewConnection() As ADODB.Connection
On Error GoTo ErrHandler:
Dim objConn As New ADODB.Connection
Dim strConnStr As String
strConnStr = "Provider='SQLOLEDB';Initial Catalog='Northwind';" & _
"Data Source='MySqlServer';Integrated Security='SSPI';"
objConn.ConnectionString = strConnStr
objConn.CursorLocation = adUseClient
objConn.Open
Set GetNewConnection = objConn
Exit Function
ErrHandler:
Set objConn = Nothing
Set GetNewConnection = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Function
'EndNewConnection
이 섹션에는 다음 항목이 포함되어 있습니다.