L’oggetto Connection di ADO mette a disposizione tre importantissimi metodi per il controllo del flusso dei dati nelle più comuni operazioni di lettura o scrittura su un database.
I tre metodi in questione sono:
- BeginTrans – da il via ad una transazione;
- CommitTrans – salva la transazione;
- RollbackTrans – annulla la transazione.
Vediamo un esempio pratico. Dato il file di database test.mdb, in cui troviamo la tabella tabella corredata dal campo campo (di tipo testo), utilizzeremo il seguente codice per effettuare un inserimento:
<%@LANGUAGE = VBScript%>
<%
Dim sc, cn
sc = ""
sc = sc & "driver={Microsoft Access Driver (*.mdb)};"
sc = sc & "dbq=" & Server.MapPath("test.mdb")
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open sc
cn.BeginTrans
If Err.number = 0 Then
cn.Execute("INSERT INTO tabella (campo) VALUES ('xyz')")
cn.CommitTrans
Response.Write "Inserimento effettuato con successo"
Else
cn.RollbackTrans
Response.Write "Transazione non disponibile"
End If
cn.Close
Set cn = Nothing
%>
Mi connetto al database, apro la connessione, inizio una transazione e verifico eventuali errori del server o di run-time; in caso non ci siano errori effettuo la transazione ed inserisco i dati, oppure, se ci sono errori, annullo la transazione.
Si tratta di una pratica poco utilizzata su DBMS come MS Access, ma molto importante quando si lavora con RDBMS di un certo livello come MS SQL Server ed Oracle, i quali gestiscono il flusso ed il lock dei dati, rispettivamente col T-SQL e con il PL-SQL, con dei metodi di inizio, salvataggio e/o annullamento della transazione, simili a questi messi a disposizione da ADO.
