Compartilhar via


Capítulo 4: Edição de dados

Aplica-se ao: Access 2013, Office 2013

Os dois capítulos anteriores explicaram como usar o ADO para estabelecer conexão com uma fonte de dados, executar um comando, obter os resultados em um objeto Recordset e navegar no Recordset. Este capítulo concentra-se na próxima operação fundamental do ADO: edição de dados.

Ele continua a usar o Recordset de exemplo apresentado no Capítulo 3 , 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 como adUseClient na função GetNewConnection (mostrada abaixo), que indica o uso de um cursor de cliente. Para obter mais informações sobre as diferenças entre cursores de cliente e de servidor, consulte o Capítulo 8: Noções básicas sobre cursores e proteções.

A definição adUseClient da propriedade CursorLocation move o local do cursor da fonte de dados (neste caso, o SQL Server) para o local do código do cliente (a estação de trabalho desktop). Essa definição força o ADO a chamar o Client Cursor Engine para OLE DB no cliente para criar e gerenciar o cursor.

Você também pode ter notado que o parâmetro LockType do método Open foi alterado para adLockBatchOptimistic. Essa ação abre o cursor no modo em lotes. (O provedor armazena em cache várias alterações e as grava na fonte de dados subjacente somente quando o método UpdateBatch é chamado.) As alterações feitas no Recordset só serão atualizadas no banco de dados quando o método UpdateBatch for chamado.

Por fim, o código neste capítulo usa uma versão modificada da função GetNewConnection, apresentada no Capítulo 2. Agora, essa versão da função retorna um cursor do cliente. A função tem esta aparência:

 
'BeginNewConnection 
Public Function GetNewConnection() As ADODB.Connection 
 Dim objConn1 As ADODB.Connection 
 Set objConn1 = New ADODB.Connection 
 
 strConnStr = "Provider=SQLOLEDB;Initial Catalog=Northwind;" & _ 
 "Data Source=MySrvr;Integrated Security=SSPI;" 
 
 objConn1.ConnectionString = strConnStr 
 objConn1.CursorLocation = adUseClient 
 objConn1.Open 
 
 Set GetNewConnection = objConn1 
End Function 
'EndNewConnection 

Este capítulo aborda os seguintes tópicos: