Editando dados
Explicamos como usar o ADO para se conectar a uma fonte de dados, executar um comando, obter os resultados em um objeto Recordset e navegar dentro do Recordset. Esta seção se concentra na próxima operação fundamental do ADO: editar dados.
Esta seção continua a usar o exemplo Recordset introduzido em Examinando Dados, com uma alteração importante. O código a seguir é usado para abrir o conjunto de registros :
'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
A alteração importante no código envolve definir a propriedade CursorLocation do objeto Connection como adUseClient na função getNewConnection (mostrada no exemplo seguinte), o que indica o uso de um cursor do cliente. Para obter mais informações sobre as diferenças entre cursores do lado do cliente e do servidor, consulte Noções básicas sobre cursores e bloqueios.
A configuração CursorLocation da propriedade adUseClient move o local do cursor da fonte de dados (o SQL Server, nesse caso) para o local do código do cliente (a estação de trabalho). Essa configuração força o ADO a invocar o Mecanismo de Cursor do Cliente para OLE DB no cliente para criar e gerenciar o cursor.
Você também deve ter notado que o parâmetro LockType do método Open foi alterado para adLockBatchOptimistic. Isso abre o cursor no modo de execução em lote. (O provedor armazena várias alterações em cache e as grava na fonte de dados subjacente somente quando você chama o método UpdateBatch.) As alterações feitas no Recordset não serão atualizadas no banco de dados até que o método UpdateBatch seja chamado.
Por fim, o código nesta seção usa uma versão modificada da função GetNewConnection. Esta versão da função agora retorna um cursor do lado do cliente. A função tem esta aparência:
'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
Esta seção contém os tópicos a seguir.