Editar 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: edição de dados.
Esta seção continua a usar o Recordset de exemplo apresentado em Examinando dados, com uma alteração importante. O código a seguir é usado para abrir o 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
A alteração importante no código envolve a definição da propriedade CursorLocation do objeto Connection igual a adUseClient na função GetNewConnection (mostrada no próximo exemplo), que indica o uso de um cursor de cliente. Para saber mais sobre as diferenças entre cursores do lado do cliente e do lado do servidor, confira Noções básicas sobre cursores e bloqueios.
A configuração adUseClient da propriedade CursorLocation 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 da área de trabalho). Essa configuração força o ADO a invocar o Mecanismo de Cursor de Cliente para OLE DB no cliente a fim de 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 lote. (O provedor somente armazena em cache várias alterações e as grava na fonte de dados subjacente 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. Essa 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 seguintes tópicos.