:: byluciani.com ::  
[ ASP ]
[ Guestbook ]
[ Forum ]
 [ Homepage ]
 [ Preferiti ]
 [ Ricerca ASP ]
Home»ASP
 

Germania 2006
 
CAMPIONI DEL MONDO
1(5)ITA:FRA1(3)
 


Calendario
Auguri ai nati sotto il segno
della Vergine
Lunedì 6 Settembre 2010
Oggi ricorre:
S. Petronio vescovo
 

Statistiche
Oggi il numero delle visite è
30
Ieri il numero delle visite è stato
54
Il numero totale delle visite è
255836
Ultimo accesso
06/09/2010 08:56:23
 

Link utili
www.aruba.it
www.aspcode.it
www.webmasterpoint.org
www.lukeonweb.net
www.acerbi.re.it
www.moduli.it
www.dotnetside.org
www.aspcenter.net
www.morpheusweb.it
www.trenoincasa.it
 

Contatti
Webmaster
Forum
Collabora
 

Credits
 

RSS di byluciani
Teoria
Articoli
Tips&Tricks
Download
 

Uplink
 

 
Collabora con byluciani.com

Hai del codice ASP che vorresti condividere, vorresti veder pubblicato qualche tuo articolo o tutorial sull'ASP?
Bene! byluciani.com sarà ben lieto di ospitare il tuo lavoro. Manda il tuo materiale a COLLABORA indicando le tue generalità (Nome, Cognome, E-Mail, sito Web, Città, data di nascita e se vuoi una foto).
Il tutto è "no profit", condividi le tue conoscenze per far crescere i giovani programmatori del Web.


Elenco collaboratori di byluciani.com


Donazioni

Hai trovato utili i contenuti di byluciani.com? Senti il piacere di contraccambiare in qualche maniera?
Puoi farlo facendo una donazione attraverso la wishlist raggiungibile al seguente indirizzo:

byluciani.com - WISHLIST


Risorse ASP/VBScript
 
Teoria
 
« Precedente Seguente »
SQL
Autore: Luciani Massimiliano Letto: 37179 volte Giudizio:
 
 

Nel capitolo relativo ai Database abbiamo visto come popolare un RecordSet con la seguente riga di codice
 
<%
10 oRS.Open NomeTabella, Connessione, TipoCursore, TipoBlocco
%>

che restituisce tutto il contenuto della tabella NomeTabella.
Come fare per estrarre in modo selettivo solo un determinato numero di record dalla tabella in questione?
In ASP è possibile manipolare i dati di un database utilizzando il linguaggio SQL (Structured Query Language).
Con SQL si possono estrarre, inserire, modificare e cancellare record di un database.
Per interrogare un database con SQL bisogna utilizzare l`istruzione SELECT con la seguente sintassi

SELECT campiselezionati FROM nometabella

dove
campiselezionati indica quali campi della tabella devono essere estratti e
nometabella la tabella da cui estrarre i dati

Nel caso si volesse selezionare tutti i campi della tabella è possibile utilizzare l`asterico nel seguente modo

SELECT * FROM nometabella

oppure se si volessero selezionare determinati campi

SELECT campo1, campo2, campo3 FROM nometabella

Quello appena visto è il modo più semplice per interrogare un database, ma se volessimo filtrare i dati della tabella dobbiamo utilizzare la clausola WHERE

SELECT * FROM nometabella WHERE condizione

dove
condizione indica l`istruzione logica per effettuare un filtro
Es. se la tabella è composta da i sequenti campi:
NOME COGNOME ETA
e voglio selezionare solo i nominativi che hanno l`età superiore a 18 anni effettuerò la seguente SQL

SELECT * FROM tabella WHERE eta > 18

Quindi è ovvia la possibilità di utilizzare qualsiasi operatore di confronto

> Maggiore di
>= Maggiore o uguale di
< Minore di
<= Minore o uguale di
<> Diverso a
= Uguale a


e gli operatori logici

AND
OR
NOT


Es.:
SELECT * FROM tabella WHERE (eta > 18) AND (nome = `Massimiliano`)

seleziona tutte le persone che si chiamano Massimiliano e che hanno età maggiore di 18 anni.
Da notare che in quest`ultimo esempio il contenuto della variabile NOME è stato incluso fra apici (NOME = `Massimiliano`) in quanto il campo NOME è di tipo Testo (stringa). Quando si trattano campi di tipo testo è possibile utilizzare l`operatore LIKE per agevolare le ricerche nelle stringhe.

Es.:
vogliamo estrarre tutti i nomi della tabella che iniziano con MA

SELECT nome FROM tabella WHERE nome LIKE 'Ma%'

per estrarre il solo campo nome
oppure

SELECT * FROM tabella WHERE nome LIKE 'Ma%'

per estrarre tutti campi.
La sintassi del LIKE prevede l`utilizzo di 3 metacaratteri:
% qualsiasi stringa
_ esattamente ad un carattere
[] qualsiasi carattere indicato all`interno di un intervallo


Es.:
SELECT * FROM tabella WHERE nome LIKE 'Francesc_'

per estrarre tutti i nomi che iniziano per FRANCESC e terminano con qualsiasi lettera (Francesco, Francesca)

SELECT * FROM tabella WHERE nome LIKE '[glt]ina'

seleziona tutti i nomi che hanno per iniziale i caratteri G, L e T e finiscono per INA (Gina, Lina, Tina) oppure

SELECT * FROM tabella WHERE nome LIKE '[g-t]ina'

seleziona tutti i nomi che hanno per iniziale le lettere comprese nell`intervallo G-T e finiscono per INA (Gina, Lina, Mina, Pina, Tina).

Con SQL è possibile ordinare i record selezionati secondo i valori di una o più colonne con la clausola ORDER BY campo ASC/DESC (crescente/decrescente)

Es.:
SELECT * FROM tabella WHERE eta > 18 ORDER BY eta ASC

per estrarre tutti record che hanno ETA maggiore di 18 anni ordinati per ETA dal più piccolo al più grande.

Per riassumere i concetti appena visti eccovi del codice esplicativo:
supposto di avere creato un file database (ACCESS) di nome myDB.mdb contenente una tabella di nome ANAGRAFE con i campi NOME, COGNOME e ETA
 
10 <%
20 Dim oRS, oConn, strSQL
30
40 'imposto la SQL di selezione (tutti i nomi che cominciano per M)
50 strSQL = "SELECT * FROM anagrafe WHERE nome LIKE 'M%'"
60
70 'apro la connessione al mio db
80 Set oConn = Server.CreateObject("ADODB.Connection")
90 oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & _
100 Server.MapPath("myDB.mdb")
110
120 'popolo il recordset con i record selezionati con il criterio impostato
130 Set oRS = Server.CreateObject("ADODB.RecordSet")
140 oRS.Open strSQL, oConn
150
160 'visualizzo a video il risultato della ricerca
170 If Not oRS.EOF Then
180 Do While Not oRS.EOF
190 Response.Write oRS("Nome") & " " & oRS("Cognome") & " " & oRS("Eta")
200 oRS.MoveNext
210 Loop
220 Else
230 Response.Write "Nessun record risponde al criterio di ricerca<BR>"
240 Response.Write strSQL
250 End If
260
270 'chiudo il recordset e la connessione
280 oRS.Close
290 Set oRS = Nothing
300
310 oConn.Close
320 Set oConn = Nothing
330 %>

 
29/05/2001
 
Formato adatto alla stampa

Esprimi un giudizio
1 2 3 4 5

 




 [ Homepage ]
 [ Preferiti ]
 [ Ricerca ASP ]
[ ASP ]
[ Guestbook ]
[ Forum ]
byluciani.com - CopyFree 2001-2010