Condividi tramite


Modifica dei dati

È stato illustrato come usare ADO per connettersi a un'origine dati, eseguire un comando, ottenere i risultati in un oggetto recordset e spostarsi all'interno dell'oggetto Recordset . Questa sezione è incentrata sull'operazione ADO fondamentale successiva: modifica dei dati.

Questa sezione continua a usare l'esempio recordset introdotto in Analisi dei dati, con una modifica importante. Il codice seguente viene utilizzato per aprire il 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  

La modifica importante al codice comporta l'impostazione della proprietà CursorLocation dell'oggetto Connection uguale a adUseClient nella funzione GetNewConnection (illustrato nell'esempio seguente), che indica l'uso di un cursore client. Per ulteriori informazioni sulle differenze tra cursori lato client e lato server, vedere Comprendere i cursori e i blocchi.

L'impostazione adUseClient della proprietà CursorLocation sposta la posizione del cursore dall'origine dati (il server SQL, in questo caso) alla posizione del codice cliente (la workstation). Questa impostazione forza ADO a richiamare il motore di cursore client per OLE DB nel client per creare e gestire il cursore.

Si potrebbe anche notare che il parametro LockType del metodo Open è stato modificato in adLockBatchOptimistic. Verrà aperto il cursore in modalità batch. Il provider memorizza nella cache più modifiche e le scrive nell'origine dati sottostante solo quando si chiama il metodo UpdateBatch. Le modifiche apportate al Recordset non verranno aggiornate nel database finché non viene chiamato il metodo UpdateBatch.

Infine, il codice in questa sezione usa una versione modificata della funzione GetNewConnection. Questa versione della funzione restituisce ora un cursore sul lato client. La funzione è simile alla seguente:

'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  

Questa sezione contiene gli argomenti seguenti.