...Personalizza la tua HomePage...

Questa Sezione è Dedicata a Tutti i Webmaster Nofiti e Non

Versione Stampabile Versione PDF Versione .DOC Versione .ZIP Scrivimi i tuoi Commenti

Facciamo la conoscenza con il Connection e il Recorset
Autore :   Linguaggio :  ASP - Active Server Pages
Data :  06/11/2003 17:52:30 Accessi :  18
Costruiamo un oggetto Connection che appartiene ad ADO e lo chiamiamo objConn.

Set objConn = Server.CreateObject("ADODB.Connection")

Poi usando il metodo Open del Connection Object ci colleghiamo al database:

objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:/asptutorial/crm.mdb")

Adesso abbiano bisogno di un oggetto Recordset (anche questo di ADO) per metterci dentro tutti i nostri dati che vengono fuori quando interroghiamo il database.


Set objRs = Server.CreateObject("ADODB.Recordset")

E poi con il metodo Execute dell'oggetto Connection eseguiamo una query al database e depositiamo il risultato nel recordset che abbiamo costruito.


set objRs = objConn.Execute("SELECT * from tbl_feedback")

Ciò che faremo di qui in poi l'abbiamo già visto.

Questo While Loop semplicement dice "fai finché non siamo arrivati alla fine del file" (EOF = End Of File)

Do While NOT objRs.EOF

Scrivimi il nome, email e commenti del primo record:

response.write "nome = " & objRs("nome") & "<br>"
response.write "email = " & objRs("email") & "<br>"
response.write "commenti = " & objRs("commenti") & "<br>"
response.write "<hr size='1' color='midnightbluè width='40%' align='left'>"

e quando l'hai fatto spostati al prossimo record

objRs.Movenext

e rifallo

Loop

Poi si pulisce.


objRs.Close
Set objRs = Nothing
objConn.Close
Set objConn = Nothing

Tutto qui.
Naturalmente questa non è l'unica maniera di scrittura del codice e forse neanche la più efficiente, comunque avrai poi tempo di sperimentare per conto tuo.

Questo metodo è semplice e valido.
Bisogna sottolineare che è molto importante chiudere il recordset e la connection.

Vedremo i motivi un po' più avanti.
La regola più importante per accedere ad una database è uguale a quella nell'affrontare una rotonda stradale: entra più svelto che puoi ed esci appena possibile.

Quindi la connection deve essere chiusa al più presto possibile in modo da far posto a un'altra macchina.

È più che sicuro che nella nostra applicazione queste righe di code saranno ripetute molte volte anche spesso nella stessa pagina.

Anche se fai 100 chiamate nella stessa pagina mai lasciare aperta la connection, chiudila sempre e crearne un'altra quando ne hai bisogno.

Altrimenti se continui a girare intorno e intorno gli altri faranno fatica ad entrare.
Allora, vediamo se possiamo semplificare un po' il codice che abbiamo scritto per evitare di scrivere sempre tutto.

Per esempio la string che usiamo per collegarci al database, poiché è sempre la stessa, non potremmo metterla nel global.asa?
Ricordi?
Se la mettiamo in quel file ce l'abbiamo sempre e se spostiamo il database da un'altra parte o se ne facciamo un'altra dobbiamo solo cambiare quella linea e tutto il resto funziona.


Sub Application_OnStart()
strDbConn = "Provider = Microsoft.Jet.OLEDB.4.0;
Data Source = C:/asptutorial/crm.mdb"
Set Application("dbconn") = strDbConn
End Sub

Cosi che nelle nostre pagine ci colleghiamo così:
objConn.Open
Application("dbconn")

O ancora meglio, potremmo scriver una procedura
Sub Prendi_Recordset(objConn, objRs, strConn, strsql)

'--------------------------------------------------------
'Purpose: riceve un recordset dalla mia database
'Date: 28 March 2001
'Commenti:
'--------------------------------------------------------

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open
strConn
Set objRS = objConn.Execute (strsql)
End Sub

Tutte le volte che devi accedere al database basta una riga sola
call Prendi_recordset(objConn, objRS, strConn, strsql)

dove naturalmente strConn e strsql sono:

strsql ="SELECT * from tbl_feedback"
strConn = Application("dbconn")

e così finiamo questo programma per bene.
(Segue check_connection.asp)
Option Explicit

'--------------------------------------------------------
'Purpose: controlla se la nostro database funzione
'Date: 28 March 2001
'Commenti:
'--------------------------------------------------------

Dim objConn, objRs
call Main()
Sub Main()

'--------------------------------------------------------
'Purpose: logica dell'applicazione
'Date: 28 March 2001
'Commenti:
'--------------------------------------------------------

Dim strConn, strsql
strConn = Application("dbconn")
strsql ="SELECT * from tbl_feedback"
call Prendi_Recordset(strConn, strsql)
call Guarda_Recordset(objRs)
'pulisci e chiudi
objRs.Close
Set objRs = Nothing objConn.close
Set objConn = Nothing
End sub
Sub Guarda_Recordset(objRs)

'--------------------------------------------------------
'Purpose: mostra un recordset dalla mia database
'Date: 28 March 2001
'Commenti:
'--------------------------------------------------------

Do while NOT objRs.EOF
response.write "nome = " & objRs("nome") & "<br>"
response.write "email = " & objRs("email") & "<br>"
response.write "commenti = " & objRs("commenti") & "<br>"
response.write "<hr size='1' color='midnightbluè width='40%' align='left'>"
objRs.Movenext
Loop
End sub

Function Prendi_Recordset(strConn, strsql)

'--------------------------------------------------------
'Purpose: riceve un recordset da un query
'Date: 28 March 2001
'Commenti:
'--------------------------------------------------------

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConn
Set objRs = objConn.Execute (strsql)
End Function

Ricordatevi Sempre di mettere i TAG di apertura e chiusura dell' ASP quando includete codice nelle pagine Html.

ESEMPIO: <% codice asp %>.

Ritorna


 NEWS 
12/09/2007 13:08:14
PAURA
Marco Travaglio con Gomez e Crozza ed Elio

11/09/2007 14:44:48
IL V-DAY: un evento NUOVO !!!!!
Aria fresca in Parlamento articolo del Sole24ore: http://www.ilsole24ore.com/art/SoleOnLine4/At...


28/06/2007 14:20:55
LEOPARDI SALUTI i 500
Certo ragazzi, anche noi nel nostro piccolo cresciamo, e Leopardi è il cinquecentesimo saggio nella ...


12/04/2007 11:31:15
ATTENZIONE A CheckMessenger.NET! , è una TRUFFA
Ennesito sito truffaldino: si chiama CheckMessenger e vi promette di mostrarvi se i vostri contatti ...


26/01/2007 11:58:34
AGGIORNATE TUTTE LE SEZIONI
AGGIORNATE TUTTE LE SEZIONI Sì, cari amici. Ho provveduto ad aggiornare le principali sazioni de...


:: ELENCO NEWS ::

  
Valid XHTML 1.0! Valid CSS!