Inserimento sicuro di dati sul database con Asp

Siti dinamici con ASP
Impara a creare siti dinamici professionali con ASP

Scritto da Luca Ruggiero nella sezione Asp

Utilizzando una stringa Sql per inserire dati su un database, quindi non demandando il compito all'oggetto Recordset, è bene controllare che il flusso del programma sia corretto, onde evitare di incappare in errori di varia natura.

Si crei il file Access database.mdb e la tabella utenti con i campi id (contatore), nome e cognome (entrambi di tipo testo).

Il codice che segue, ben commentato, illustra un esempio:

<%@LANGUAGE = JScript%>
<%
    // RECUPERO I DATI DA INSERIRE ED EFFETTUO IL REPLACE DEL CARATTERE APICE (')
    var nome = "Luca".replace(/'/g, "''");
    var cognome = "Ruggiero".replace(/'/g, "''");

    // DICHIARO UNA VARIABILE CHE CONTERRA' IL MESSAGGIO DA RESTITUIRE ED UNA PER LA STRINGA SQL
    var messaggio = "";
    var SQL = "INSERT INTO utenti (nome, cognome) VALUES ('" + nome + "', '" + cognome + "')";

    // APRO LA CONNESSIONE
    var Cn = new ActiveXObject("ADODB.Connection");
    Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("database.mdb"));

    // INIZIO LA TRANSAZIONE DEI DATI
    Cn.BeginTrans();

    try
    {
        // SE TUTTO VA A BUON FINE ESEGUO L'INSERIMENTO E SALVO L'OPERAZIONE
        Cn.Execute(SQL);
        Cn.CommitTrans();
        messaggio += "Inserimento effettuato con successo";
    }
    catch (e)
    {
        // IN CASO CONTRARIO BLOCCO LA TRANSAZIONE
        Cn.RollbackTrans();
        messaggio += "Errore durante un tentativo di inserimento";
    }
    finally
    {
       // COMUNQUE VADANO LE COSE CHIUDO LA CONNESSIONE
        Response.Write(messaggio);
        Cn.Close();
    }
%>
L'esempio vede coinvolti i metodi BeginTrans(), CommitTrans() e RollbackTrans() dell'oggetto Connection i cui compiti sono rispettivamente: aprire una transazione, salvare o respingere la transazione a seconda di errori, come eventualmente potrebbe verificarsi nel caso esposto, oppure a seconda di condizioni imposte dallo sviluppatore.

I più cliccati della sezione Asp

:: Un semplice form mail in Asp (51.682)

:: Creazione di un Guestbook in Asp (50.782)

:: Creazione di un'area di accesso riservato in Asp (45.422)

:: Connessione ad un database MySql con Asp (25.044)

:: Connessione ad un database Microsoft SQL Server con Asp (24.069)

:: Asp e database (23.123)

:: Differenza tra i metodi get e post e recupero dei dati, attraverso Asp (22.300)

:: Una semplice area di accesso riservato senza DB in Asp (21.383)

:: Riscrivere le URL con Asp (19.743)

:: Creazione di un Sondaggio in Asp (19.100)

IN EVIDENZA
DOWNLOAD