Webaperto
  Facili Lezioni Asp - Settima Lezione     
 
Eventi
<
Luglio
>
L M M G V S D
-- -- -- 01 02 03 04
05 06 07 08 09 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 --

Messaggi veloci
Messaggetti

Coleporter: Qui puoi inserire direttamente i tuoi messaggi
Coleporter: Ultimate le 8 facili lezioni Asp che trovate nel menu orizzontale.
Canasta: Vero che state per pubblicare dei progetti Asp?
Coleporter: Sì, prossimamente.
Coleporter: Inserita la Mappa del Sito in Menu
Coleporter: In downloads/asp la guida al VBScript
The-BiT: Un caro saluto a Coleporter, dopo mesi di mia assenza su internet
Coleporter: Ricambio sinceramente, Bit

Per imettere messaggi occorre essere registrati.

 
Facili Lezioni Asp - Settima Lezione

         Settima Lezione

Sommario:

I Database:

- Concetto, applicazioni, struttura
- Connessione a un database
- L'oggetto Recordset

Concetto, applicazioni, struttura

Finalmente eccoci ai database! Già abbiamo avuto occasione di dirvi che Asp trova il meglio della sua potenzialità applicativa nei database. Abbiamo anche visto nella lezione 6 come creare, leggere e scrivere nei files, il che può essere utile in determinate circostanze; c'è però una differenza rispetto al fare le stesse azioni con i database: i files vanno utilizzati in maniera sequenziale mentre i database in maniera causale. Facciamo un esempio: se i dati relativi agli utenti li aveste tutti dentro a files diversi, per trovare uno di tali dati dovreste esaminare il contenuto dei vari files o, ammesso che gli stessi fossero in un unico file, dovreste comunque esaminarlo tutto non essendo possibile limitare e mirare la lettura soltanto al dato che vi occorre.
Questo non avviene con i database i quali hanno delle caratteristiche che consentono l'agevole creazione, lettura e manipolazione con la possibilità di estrarre, con poche righe di codice, anche un solo elemento inserito entro altre migliaia di dati.

Un database (o base di dati) è come un archivio in cui possono essere memorizzati grandi quantità di dati. In questo archivio i dati possono essere inseriti, cancellati, aggiornati e aggiunti; ma ancora di più: specificando determinate premesse, possono essere filtrati i risultati della ricerca di dati ed anche ordinati secondo le nostre esigenze. Pensate che potenzialità hanno!
Accenniamo al fatto che esistono diversi database; per quantità enormi di dati (portali, gradi siti commerciali) i prodotti più utilizzati sono Microsoft SQL Server 2000, Oracle e MySQL: tuttavia, al di là del loro costo, sono di difficile configurazione e amministrazione. Per i siti di più modeste dimensioni viene usato Access (compreso in Office) di più facile uso.

Quasi tutti voi, se non tutti, sapete che un database può contenere più tabelle. Potete immaginare una tabella come un riquadro suddiviso in righe e colonne: il contenuto di un'intera riga costituisce un record; il contenuto di ogni singola cella è denominato campo. Se effettuiamo una ricerca con una query (interrogazione) su un database, il risultato dei records trovati forma un cosiddetto recordset.

Pippo è il valore di un campo (il nome del campo relativo è Username), 2 Mario finferlo Roma mario@email.it è un record.
Non ci soffermiamo ulteriormente sulla creazione e manipolazione dei database esulando questo argomento dal contenuto delle nostre lezioni; se del caso farete una ripassatina da qualsiasi testo che tratti di Access.

Connessione a un database

Per leggere e scrivere in un database occorre prima connettersi allo stesso. Premettiamo la cognizione dell'acronimo ADO (ActiveX Data Objects): si tratta di un insieme di oggetti che consentono di accedere ai database. Noi ci serviremo dell'oggetto connection che è usato per contenere le informazioni dell'archivio dati a cui si vuole accedere. E' creato nella stessa maniera con cui sono stati creati tutti gli altri componenti studiati e cioè usando Server.CreateObject. Quindi:

<%
Dim objConn (ovviamente questa variabile possiamo chiamarla come vogliamo, ad es.: conn, con, connessione...)
Set (vi ricordiamo che con set creiamo un'istanza dell'oggetto) objConn = Server.CreateObject_("ADODB.Connection")
%>

Per effettuare una connessione ci si può servire di due sistemi:
1) Usare un DSN di sistema.
DSN (Data Source Name) è un file che contiene informazioni relative al percorso e al tipo di database.
Come si crea un DSN: dopo aver creato il database (ad es.: dbUtenti.mdb), dal desktop entrate nel pannello di controllo, Strumenti di Amministrazione, Origine dati ODBC. Selezionate la scheda DSN di sistema come nella seguente immagine:

fate click su Aggiungi: apparirà un elenco di driver come nell'immagine seguente:

selezionate Driver Microsoft Access(*.mdb) e cliccate su Fine. Apparirà la finestra che vedete sotto dove dovrete scrivere, come nome origine dati, il nome del vostro database con estensione .dsn (potete, ma non è obbligatorio, inserire sotto una breve descrizione del database):

cliccate su Seleziona, cercate nella finestra successiva il vostro file mdb, selezionatelo e date OK. Nella finestra DSN di sistema apparirà il vostro database: cliccate ancora su OK.
Una volta attivato il DSN di sistema la connessione potrà avvenire così:

<%
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DSN = dbUtenti.dsn"
Conn.Open
%>

Poichè è molto probabile che in un'applicazione Asp si debba ricorrere alla connessione più volte, è opportuno salvare il suddetto listato, oppure quello alternativo senza DSN di cui parleremo più tardi, in un file tipo "connessione.asp" da inserire dove occorre mediante un include (v. lezione 6) tipo: <!--#include file = "connessione.asp"--> (ricordare che, se il file "connessione.asp" non si trova nella stessa directory occorre specificare il percorso).

N.B.: La connessione mediante DSN è possibile con sistemi operativi superiori a Windows 2000 diversamente si adotterà l'altro tipo senza DSN (v.sotto). Inoltre, quando pubblicherete il database e le pagine Asp che lo richiamano, dovrà essere il vostro Provider a configurare nel server il file DSN.

2) Connettersi senza usare un  DSN.(Lo consigliamo per evitare eventuali disguidi con il Provider). In questo caso useremo il metodo Ole-db anzichè quello ODBC; sulla differenza tra i due sistemi non ci soffermiamo per motivi di spazio ed anche perchè avrebbe un significato quasi esclusivamente teorico. Sappiate, comunque, che molti dei provider oggi sono organizzati per fornire prestazioni migliori con Ole-db piuttosto che con ODBC.
Il listato relativo è il seguente (ci riferiamo sempre a database creati con Access):

<%
Dim Conn, strConn
strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "&_
Server.MapPath("utenti.mdb")
Set Conn = Server.CreateObject("ADODB.connection")
Conn.Open StrConn
%>

Ricordiamo anche qui che, se il database si trova in una dir diversa, occorre indicare il percorso dopo "Server.MapPath".
Quando avrete terminato di operare con il database, la connessione andrà chiusa così:

<%
Conn.close
set Conn = Nothing
%>

tanto occorre per liberare memoria e risorse per altri utenti connessi.

L'oggetto Recordset

Ricordiamo che l'oggetto recordset può essere usato per contenere, se si vuole, anche tutti i records di una tabella, ma molto spesso per contenere un sottoinsieme specifico della stessa. Per esempio, potremmo avere bisogno di estrarre dalla tabella tutti gli utenti della zona di Roma.
Per creare un'istanza dell'oggetto recordset si può usare il seguente listato:

1 - <!--#include file = "connessione.asp"-->
<%
2 - SQL = "Select * FROM utenti"
3 - Set objRS = Server.CreateObject("ADODB.Recordset")
4 - objRS.Open SQL, Conn

5 - Do While Not objRS.Eof
6 - Response.Write objRS("Username")&"<br>"
7 - Response.Write objRS("Password")&"<br>"
8 - Response.Write objRS("Citta")&"<br>"
9 - Response.Write objRS("Email")&"<br>"&"<hr>"
10 - objRS.MoveNext
11 - Loop

12 - objRS.Close
13 - Set objRS = Nothing
14 - Conn.Close
15 - Set.Conn = Nothing
%>

Analisi:

Nella linea 1 includiamo il file per la connessione. Nella linea 2 viene introdotta una nuova istruzione di ADO: Select. La sintassi di Select è: SELECT nomeCampo (nel caso si vogliano estrarre tutti i campi si scrive *) FROM nomeTabella WHERE (opzionale) condizione (es.: nomeCampo = "Roma") ORDER BY(opzionale) nomeCampo Asc (o Desc). Sempre la linea 2 assegna alla variabile SQL i valori di tutti i campi della tabella utenti. La linea 3 crea l'oggetto recordset. La linea 4 apre il recordset (assegnandogli l'istruzione SQL). La linea 5 crea un ciclo Do...Loop che continua finchè il record non è vuoto (eof indica la fine dei records mentre bof indica che un record è pieno); all'interno del loop vi sono le istruzioni per scrivere i contenuti dei campi dei records entro i quali il puntatore (quello che consente il movimento da un record all'altro) si sposta: il puntatore si sposta con l'istruzione Move.Next. Le linee dalla 12 alla 15 liberano risorse chiudendo e annullando gli oggetti che abbiamo precedentemente creato e cioè quello del recordset e quello della connessione applicando la regola di Html: si chiude per primo quello aperto per ultimo e per ultimo quello aperto per primo.

Se vi sono problemi su questa o su successive lezioni, comunicatecelo nel forum  oppure scriveteci.

    Back     Next
Stampa questa pagina

Continuate a leggere le Lezioni Asp. Vi gioverà e vi piacerà anche.
 
Visitatori
Visitatori Correnti : 3
Membri : 0

Per visualizzare la lista degli utenti collegati alla community, devi essere un utente registrato.
Iscriviti
Log in
Login
Password
Memorizza i tuoi dati:
Più recenti - Siti
NicolaPiscopoART (IT)
danzaclassica.net (IT)
Luisa Signorelli, danzatrice e coreografa (IT)
Webstyling.it (IT)
realizzazione biopiscine (IT)
piccolo principe counseling (IT)
I Misteri di Patricia Cornwell (IT)
coop soc l'arcoiris (IT)
vba di excel (IT)
Festival di Sanremo (IT)
umbria travel (IT)
Hotel Roma (IT)
Portale culturale e turistico sul Cilento e Paestu (IT)
annunci (IT)
Sito di A.P.T. (IT)
New Point City (IT)
DISKA's PHOTOS (IT)
Antichi sapori del Salento (IT)
PubbliCartoMania (IT)
Il mio Jazz (IT)
LuciaGardellin (IT)
Parabita Online (IT)
Arte Attacchi (IT)
La Bottega di Nina (IT)
Pittura e Poesia (IT)
Ricerca Creativa (IT)
Mondo Antico..... (IT)
Don Dialetto (IT)
Fianello Borgo (IT)
The-Bit (IT)
Maryart-Gallery (IT)
Jan Friend (IT)
Il Mondo di Krilù (IT)
Sitoaperto (IT)
I preferiti
Il Mondo di Krilù (897)
Jan Friend (738)
Sitoaperto (547)
Il mio Jazz (481)
Don Dialetto (345)
Maryart-gallery (325)
The-Bit (310)
Fianelloborgo (295)
Parabita Online (293)
PubbliCartoMania (283)
Labottegadinina (265)
DISKA's PHOTOS (249)
Cerca nel Sito


 
 © 02/2007 Webaperto  -   Contattami  -   Realizzato con © ASP-Nuke 2.0.7
Questa pagina è stata eseguita in 0,0625secondi.
Versione stampabile Versione stampabile