![]() |
|
Asp e database
Introduzione var Cn = new Server.CreateObject("ADODB.Connection");
oppure con la classica sintassi JScript
var Cn = new ActiveXObject("ADODB.Connection");
La classe che permette di creare un'istanza dell'oggetto Connection è quindi ADODB.Connection.I principali metodi di Connection sono Open(), Execute() e Close() che si occupano rispettivamente di aprirà la connessione verso un database, di eseguire un comando Sql e di chiudere la connessione in questione. Vedremo un esempio in seguito, appena spiegati altri concetti teorici fondamentali. Le principali proprietà di Connection sono ConnectionTimeout, che permette di stabilire in secondi quanto deve durare una connessione, e Version che restituisce la versione di ADO che si sta utilizzando. Altro oggetto fondamentale di ADO è Recordset, la cui collezione utilizzata all'atto della creazione di una nuova istanza dell'oggetto è ADODB.Recordset var Rs = new Server.CreateObject("ADODB.Recordset");
oppure con la classica sintassi JScript
var Rs = new ActiveXObject("ADODB.Recordset");
Abbiamo memorizzato nella variabile Rs l'istanza dell'oggetto creato.L'oggetto Recordset dispone fondamentalmente di una proprietà ed un metodo, ovvero la proprietà EOF (End Of File - lo analizzeremo in seguito) e del metodo MoveNext() che muove il cursore di ADO sul record successivo; analogamente i metodi MovePrevious(), MoveFirst() e MoveLast() muovono il cursore del Recordset rispettivamente verso il record precedente, il primo e l'ultimo; ad ogni modo esistono anche i metodi Open() e Close(). Un semplice esempio di lettura dei dati Per sviluppare un semplice esempio iniziale, creiamo file Access e chiamiamolo database.mdb; al suo interno la tabella anagrafe composta dai campi id (di tipo Contatore), nome e cognome (entrambi di tipo Testo); salviamo la tabella senza impostare nessuna chiave primaria quando richiesto. inseriamo qualche dato all'interno della tabella, ed il database è pronto! Creiamo una nuova pagina Asp e chiamiamola lettura.asp ed inseriamo il seguente codice:
<%@LANGUAGE = JScript%>
<%
var Cn = new ActiveXObject("ADODB.Connection");
var StrCn = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("database.mdb");
Cn.Open(StrCn);
var Sql = "SELECT * FROM anagrafe";
var Rs = Cn.Execute(Sql);
if (Rs.EOF) Response.Write("Nessun dato presente");
else while (!Rs.EOF)
{
Response.Write("<p>Nome: " + Rs("nome") + "<br>Cognome: " + Rs("cognome") + "</p>");
Rs.MoveNext();
}
Cn.Close();
%>
Il codice appena presentato effettua i seguenti passi:1. crea l'oggetto Connection e si connette al database mediante la stringa di connessione (StrCn)
var Cn = new ActiveXObject("ADODB.Connection");
var StrCn = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("database.mdb");
2. Apre la connessione
Cn.Open(StrCn);3. Esegue una stringa Sql var Sql = "SELECT * FROM anagrafe"; var Rs = Cn.Execute(Sql);Non a caso ho utilizzato il nome Rs come variabile per memorizzare l'esecuzione della stringa Sql: il metodo Execute() pur se non associato esplicitamente ad un oggetto Recordset, fa comunque parte della sua collezione. 4. Verifica che nel database ci siano dati (record) if (Rs.EOF) Response.Write("Nessun dato presente");
Anche in questo caso vale il discorso che la proprietà EOF, anche se non associata esplicitamente ad un oggetto Recordset, fa comunque parte della sua collezione.5. In caso ci siano dati nel database, esegue un ciclo while per tirare fuori tutti i record presenti
else while (!Rs.EOF)
{
Response.Write("<p>Nome: " + Rs("nome") + "<br>Cognome: " + Rs("cognome") + "</p>");
Rs.MoveNext();
}
6. Chiude la connessione
Cn.Close();Un semplice esempio di scrittura dei dati Vediamo adesso come sfruttare l'oggetto Recordset per inserire dati nella stessa tabella dello stesso database creato in precedenza. Di seguito il codice della pagina inserimento.asp
<%@LANGUAGE = JScript%>
<%
var Cn = new ActiveXObject("ADODB.Connection");
var StrCn = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("database.mdb");
Cn.Open(StrCn);
var Rs = new ActiveXObject("ADODB.Recordset");
Rs.Open("anagrafe",Cn,3,3);
Rs.AddNew();
Rs("nome") = "Luca";
Rs("cognome") = "Ruggiero";
Rs.Update();
Rs.Close();
Cn.Close();
%>
Anche in questo caso creiamo l'oggetto Connection ed apriamo la connessione al database, chiudendola alla fine delle operazioni. Analizziamo adesso più nel dettaglio il codice per l'inserimento dei dati mediante l'oggetto Recordset:
var Rs = new ActiveXObject("ADODB.Recordset"); // Crea l'oggetto Recordset
Rs.Open("anagrafe",Cn,3,3); // Apre il recordset specificando la tabella, la connessione e dei parametri opzionali
Rs.AddNew(); // Il metodo AddNew() predispone il Recordset all'inserimento di nuovi dati
Rs("nome") = "Luca"; // Inserisco dati nel campo "nome"
Rs("cognome") = "Ruggiero"; // Inserisco dati nel campo "cognome"
Rs.Update(); // Aggiorno il Recordset: attenzione, Update non sta per modifica dei dati, ma per refresh
Rs.Close(); // Chiudo il Recordset
ApprofondimentiArticoli di approfondimento nella sezione Articoli Asp. Una serie di interessanti Trucchi che spiegano come vivere felici, sono consultabili nella sezione Trucchi Asp alla voce Database. |
IN EVIDENZA
Una slidegallery con jQuery
Pagamenti online con PayPal e PHP
Breve guida a jQuery
Effetto ombra su testo con Photoshop
Guadagna col tuo sito grazie a TradeD...
Guida XHTML
Riscrivere le URL con Asp
Riavviare IIS
HTTP 500 internal server error
Generare password casuali in Javascri...
Errore 80004005: Cannot update. Datab...
Introduzione ad Ajax ed Asp con Jscri...
Referenze dei Tag Html
Stringhe di connessione via ODBC e Ol...
Referenze dei fogli di stile Css
Le espressioni regolari in Javascript
|
||||
© 2001/2010 lukeonweb.net - A cura di Luca Ruggiero, Partita IVA 05564851219 -
Privacy |
Pubblicità |
Contatti
| |||||