Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Area Aziende Cocktail Registrazione domini



Gestione delle transazioni con ADO

Home + Articoli + Database e SQL + Articolo # 163
Autore: Luca Ruggiero

Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.


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.

© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones