Abbiamo visto come si effettua l'estrazione dei messaggi personali dell'utente tramite la tecnica dell'impaginazione. Ora vedremo come preparare l'elenco dei messaggi riferiti alla pagina prescelta. Ricordo che i messaggi della pagina vengono selezionati grazie il comando LIMIT visto in precedenza.
Il codice necessario per mostrare i messaggi è il seguente:
082: Set conn = Server.CreateObject("ADODB.Connection")
083: Set comm = Server.CreateObject("ADODB.Command")
084: Set Rs = Server.CreateObject("ADODB.Recordset")
085:
086: conn.CommandTimeout = 40
087: conn.CursorLocation = 1
088: conn.ConnectionString = dbConnessione
089: conn.Open
090:
091: comm.ActiveConnection = conn
092: comm.CommandType = 1
093:
094: comm.CommandText = strSql
095:
096: Rs.Open comm,,1,1
097:
098: if not rs.eof then
099: do while not rs.eof
100: %>
101: <tr>
102: <td> </td>
103: <td nowrap><center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><%=rs("dt_invio")%></font></center></td>
104: <td nowrap><font size="2" face="Verdana,
Arial, Helvetica, sans-serif"><%=rs("login")%></font></td>
105: <td nowrap><font size="2" face="Verdana,
Arial, Helvetica, sans-serif"><a href="javascript:;"
onClick="ApriFinestra('leggi.asp?idMsg=<%=rs("id_msg")%>');PrimoPiano ();"><%=rs("titolo")%></a></font></td>
106: <td nowrap><center><input type="checkbox"
name="pvtElimina" value="<%=rs("id_msg")%>"></center></td>
107: <td> </td>
108: </tr>
109: <%
110: rs.movenext
111: loop
112: else
113: %>
114: <tr>
115: <td colspan="5"> </td>
116: </tr>
117: <tr>
118: <td colspan="5"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Nessun messaggio.</strong></font></div></td>
119: </tr>
120: <%
121: end if
122:
123: rs.close
Le righe dalla ottantadue alla ottantaquattro servono per creare le istanze dei tre oggetti necessari per interagire col database mySql. Nel rispettivo ordine sono:
Oggetto connection: Il compito di questo oggetto è quello di aprire la connessione col database desiderato
082: Set conn = Server.CreateObject("ADODB.Connection")
Oggetto command: Il compito di questo oggetto (nel nostro caso specifico) è quello di interrogare la nostra fonte dati per ricavare le informazioni da mostrare all'utente. Gli altri compiti consistono nella modifica della struttura del database o la modifica di dati già presenti al suo interno.
083: Set comm = Server.CreateObject("ADODB.Command")
Oggetto recorset: Il compito di quest'oggetto è quello di contenere i dati estratti dalla fonte dati interessata tramite l'istruzione S.q.l. elaborata e spiegata in precedenza.
084: Set Rs = Server.CreateObject("ADODB.Recordset")
Ora, dopo aver creato le istanze dei tre oggetti, dobbiamo impostarle per poterle sfruttare correttamente.
086: conn.CommandTimeout = 40
087: conn.CursorLocation = 1
088: conn.ConnectionString = dbConnessione
089: conn.Open
Ripropongo lo schema con il significato delle proprietà dell'oggetto connection appena impostato
N° Riga
|
Proprietà
|
Valore
|
Significato
|
86
|
CommandTimeout | 40 | Specifica il tempo di attesa massimo prima di dichiarare fallito il tentativo di connessione. |
87
|
CursorLocation | 1 | Specifica dove utilizzare il cursore. |
88
|
ConnectionString | dbConnessione | Specifica la stringa di connessione necessaria per connettersi al database. Specificata o nel file incluso oppure all'interno del global.asa |
89
|
Open | / | Apre la connessione al database utilizzando i valori specificati in precedenza. |
Dopo l'utilizzo dell'oggetto connection, viene utilizzato l'oggetto Command:
091: comm.ActiveConnection = conn
092: comm.CommandType = 1
093:
094: comm.CommandText = strSql
Il significato delle proprietà dell'oggetto command è il seguente:
N° Riga
|
Proprietà
|
Valore
|
Significato
|
91
|
ActiveConnection | conn | Specifica su quale connessione deve deve lavorare l'oggetto command istanziato. |
92
|
CommandType | 1 | Specifica se il comando riguarda una tabella(2) oppure se è una stringa SQL (1) |
94
|
CommandText | Variabile generata in precedenza | Indica la stringa SQL da eseguire. |
Come ultimo oggetto impostato vi è l'oggetto RecordSet :
096: Rs.Open comm,,1,1
Il primo valore specificato nell'apertura del RecordSet è il comando da impartire al recordset. Il secondo parametro è vuoto in quanto rappresenta la connessione al database interessata. Se però guardate le proprietà dell'oggetto command alla riga novantuno osservate l'associazione con la connessione attiva. Il terzo ed il quarto parametro indicano il cursore di accesso al database ed il tipo di blocco associato.