| 
					
					 Introduzione 
					Con la tecnologia 
					ASP è possibile connettersi ad una BaseDati 
					(Database) per leggere, aggiornare o inserire nuovi dati (in 
					questo caso Access Microsoft, 
					visto che la tecnologia ASP 
					appartiene a Microsoft). In ASP 
					questa tecnologia è detta ODBC
					(open database connectivity). Grazie ai Database è 
					possibile archiviare grosse quantità di dati con un minimo 
					sforzo, in seguito risulta molto semplice accedere per 
					recuperare questi dati quando serviranno. Il componente 
					preposto a questa attività si chiama 
					ActiveX Data Object (ADO) che permette la connessione 
					verso qualsiasi Database che supporti
					ODBC tramite un driver 
					apposito. 
					Componente ADO 
					Il primo oggetto che viene utilizzato per 
					operare su un Database si chiama 
					Connection che come il nome lascia intendere si 
					tratta dell'oggetto atto alla connessione col Database. La 
					sua sintassi è descritta sotto. 
					var ADOCon = new 
					ActiveXObject("ADODB.Connection") 
					Tramite il riferimento
					ADOCon è ora possibile 
					accedere alle proprietà e ai metodi dell'oggetto. 
					Ma prima di continuare è necessario creare 
					un Database Access di prova, a questo proposito si apra 
					Microsoft Access, dall'interfaccia iniziale si scelga 
					l'operazione di creazione di un nuovo Database e si vada a 
					salvarlo nella cartella che ospiterà i file di codice ASP, 
					assegnadogli un nome, ad esempio dipendenti.accdb, sempre da 
					Access in visualizzazione struttura si crei una nuova 
					tabella inserendoci i seguenti campi. 
					   campo      tipo           
					id                  
					contatore    nome             
					string    cognome        
					string                                                        
					    telefono         
					string   
					Adesso chiudendo la visualizzazione 
					struttura della tabella la si salva assegnandogli un nome, 
					ad esempio impiegati. Tornando alla schermata precedente si 
					visualizza l'elenco delle tabelle create, fare quindi doppio 
					click sulla tabella impiegati per aprirla ed inserire alcuni 
					record di prova, basta inserirne due o tre, di più non 
					servono. 
					Creare ora un nuovo documento con 
					estensione .asp e inserire al suo interno il seguente codice 
					che connette al Database creato precedentemente, lo 
					interroga e stampa la lista completa dei record presenti al 
					suo interno. 
					
	
		| 
		Connessione Database Access | 
		
		  | 
	 
	
		| 
		 | 
	 
 
					 La prima riga di codice dichiara la direttiva necessaria per l'utilizzo del linguaggio da usare. Nella seconda e nell'ultima riga abbiamo 
					i simboli che rispettivamente rappresentano l'apertura e la chiusura del codice JScript. Proseguendo abbiamo la dichiarazione 
					di quattro variabili identificate dalla parola riservata var.    La prima var sql = "SELECT 
					* FROM impiegati" dichiara una variabile di tipo stringa (notare che le variabili di tipo stringa devono essere contenute all'interno dei doppi apici) 
					che contiene la query (interrogazione) che sarà usata per la selezione dei record presenti all'interno del Database.    Anche la seconda
					var path="dipendenti.accdb" dichiara una variabile di tipo stringa che in questo caso contiene il nome del Database.    
					La terza var ris dichiara una variabile che in seguito contienerà il RecordSet risultante 
					dall'interrogazione del Database.    Ed infine var ADOCon = new ActiveXObject("ADODB.Connection") dichiara ed 
					assegna ad ADOCon il riferimento all'oggetto Connection con il quale in seguito sarà possibile 
					accedere alle sue proprietà ed ai suoi metodi. 
					Proseguendo nelle due righe di codice successive alla dichiarazione delle variabili 
					ADOCon.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;"; ADOCon.ConnectionString +="DataSource=" +  Server.MapPath(path); possiamo vedere 
					una proprietà di Connection utilizzata in questo listato che è ConnectionString che contiene la 
					stringa di connessione al Database. Le informazioni delle stringhe di connessioni generalmente si compongono di coppie chiave=valore; 
					la chiave è separata dal valore per mezzo del simbolo di uguale ed ogni coppia è separata dalla successiva per mezzo del
					punto e virgola. Nella stringa usata in questo listato abbiamo due coppie di valori. L'istruzione che assegna
					valore alla seconda coppia Server.MapPath(path) è un metodo dell'oggetto 
					Server che accetta un parametro stringa che contiene il nome del Database e restituisce il suo percorso assoluto compreso del nome del Database 
					all'interno del Server. Se al Database fosse stata assegnata una password per accedervi sarebbe stato necessario aggiungere una terza coppia
					chiave=valore e cioè   ";Jet OLEDB:Database Password=MiaPassword" 
					Proseguiamo con la successiva riga di codice che è ADOCon.Open(); questa riga apre la connessione al Database 
					utilizzando la stringa appena creata. La riga di codice ris = ADOCon.Execute(sql); esegue l'istruzione 
					SQL contenuta e creata in precedenza nella variabile sql, e restituisce il risultato nella variabile
					ris che diventa adesso di tipo RecordSet e contiene tutti i record selezionati. 
					Le successive istruzioni sono contenute all'interno di un ciclo while e servono per stampare sulla pagina del 
					Browser tutti i campi dei record selezionati. 
					Comando SELECT 
					Come specificato nell'introduzione, da un Database è possibile recuperare informazioni, aggiornare informazioni esistenti ed inserirne di nuove, 
					l'istruzione per il recupero di informazioni è la SELECT, quella per l'aggiornamento di informazioni esistenti è
					UPDATE e quella per inserire nuove informazioni è INSERT, la più complicata è certamente la
					SELECT che nella sua forma più semplice si presenta così: SELECT * FROM dipendenti che seleziona 
					tutti i campi di tutti i record presenti nella tabella dipendenti, infatti l'asterisco dice alla SELECT di selezionare tutti i 
					campi e non essendo presente alcuna clausola verranno selezionati tutti i record. 
					SELECT nome, cognome, telefono FROM dipendenti WHERE nome="paolo" 
					Questa SELECT seleziona nome, cognome e telefono (in pratica tutti i campi della tabella dipendenti, quindi si 
					sarebbe potuto usare l'asterisco) quando nome="paolo" E si si sarebbe voluto cercare "Paolo"?? in questo caso "Paolo" 
					non è uguale a "paolo" perchè la prima lettera è maiuscola quindi verrebbero selezionati solo i record che nel campo nome sono esattamente uguali a "Paolo". Se 
					si volesse che in entrambi i casi il record fosse selezionato si sarebbe dovuto usare al posto del simbolo di = la clausola
					LIKE, quindi la SELECT si sarebbe presentata così: SELECT nome, cognome, 
					telefono FROM dipendenti WHERE nome LIKE "paolo". 
					Volendo selezionare tutti i campi che contengono all'inizio della stringa "Lorenzo" seguita ad esempio da un cognome come "Lorenzo Rossi" o 
					qualsiasi altra parola o frase si può usare il simbolo di percentuale che significa qualsiasi frase quindi la SELECT questa volta si presenterebbe così:  SELECT nome, cognome, 
					telefono FROM dipendenti WHERE nome LIKE "Paolo%" 
					Se invece volessimo selezionare qualsiasi stringa che alla fine contiene la parola "Lorenzo" la SELECT si presenterebbe questa volta così:  SELECT nome, cognome, 
					telefono FROM dipendenti WHERE nome LIKE "%paolo" 
					Se adesso scrivo una SELECT in questo modo:  SELECT nome, cognome, 
					telefono FROM dipendenti WHERE nome LIKE "%paolo%" 
					Questa seleziona tutti i campi nome, cognome e telefono che contengono nel campo nome una stringa che al suo interno in qualsiasi posizione 
					contiene "paolo"  
					La sintassi dell'istruzione SELECT è questa: 
					SELECT campo1, campo2, campo3, ... FROM tabella WHERE campo1="paolo" 
					Dove campo1, campo2, campo3, ...  è una lista dei campi da selezionare separati da una virgola, e tabella è 
					il nome della tabella nel quale cercare, campo1="paolo" criterio per la selezione dei record introdotto dalla clausola
					WHERE. 
					Quando i risultati vengono restituiti, come intestazione vengono restituiti i nomi dei campi inseriti nella SELECT, se questi  nomi non 
					sono abbastanza significativi si possono cambiare senza influenzare la tabella principale, in questo modo: SELECT campo1 AS 'Nome' , 
					campo2 AS 'Cognome', campo3 AS 'Telefono', ... FROM tabella WHERE campo1="paolo" 
					Ovviamente tutto  quanto detto fino ad adesso riguardo l'istruzione SELECT rappresenta solo una minima introduzione all'argomento, molte 
					altre sono le clausole e le funzioni che possono essere con SELECT, ma per spiegare tutto riguardo questa istruzione occorre un'altro capitolo. 
					Comando UPDATE 
					Con questo comando è possibile aggiornare i dati di uno o più campi già presenti all'interno della tabella. Ad esempio è possibile che in una 
					tabella come quella creata precedentemente chiamata impiegati, uno degli impiegati già presente al suo interno cambi numero di telefono, ecco quindi che è 
					necessario un aggiornamento. Vediamo quindi la sintassi di questo comando: UPDATE tabella SET campo=valore WHERE condizione, 
					quindi supponendo applicato alla tabella impiegati avremmo: UPDATE impiegati SET telefono="3394578396" WHERE telefono="3392864211" 
					in questo caso come condizione ho usato il campo telefono ma nulla vieta ad esempio di usare qualsiasi altro campo. La seguente istruzione (o comando) per 
					una maggiore leggibilità può anche essere scritta in questo modo: UPDATE impiegati SET telefono="3394578396" WHERE 
					telefono="3392864211" è anche possibile in una unica istruzione UPDATE aggiornare più campi, quindi dopo la clausola SET basta inserire più campi 
					separati da una virgola. 
					Comando INSERT INTO 
					Con questo comando è possibile aggiungere all'interno della tabella nuovi record. Vediamo sotto la sintassi: INSERT 
					INTO tabella (elenco campi) VALUES (elenco valori) ad esempio vediamo sotto una aggiunta nella tabella impiegati: INSERT INTO 
					impiegati (nome, cognome, telefono) VALUES ("Michele" , "Danzi" , "3348958310") ovviamente il campo id trattandosi di 
					un campo che si autoincrementa non è necessario coinvolgerlo. Anche qui vediamo come scrivere l'istruzione nel modo più leggibile. 
					INSERT INTO impiegati ( nome, cognome, telefono ) VALUES ( 
					"Michele", "Danzi", "3348958310" ) 
					Con questo per il momento è tutto. 
					 |