Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
PRINCIPALE > ARTICOLO

Eseguire una ricerca veloce nell' archivio delle risorse di Visual Basic Italia®: 

Preso dall'archivio...

Premere il pulsante sotto per accedere direttamente ad un articolo o ad un esempio preso in modo casuale dall'archivio.



Ultimo e-book pubblicato:

"INTRODUZIONE AI CSS"

Lo scopo del CSS language è quello di controllare lo stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli di stile.

Prezzo: € 0.0.
Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

 

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre domande relative al sito
oppure scrivere ad un responsabile di area.
Responsabile del sito: >Andrea Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini

Visual Basic e ADO per tutti - prima parte (a cura di Davide Cerbo)

Questa lezione, consultata da 2692 utenti, è stata giudicata di ottimi contenuti , con un'esposizione perfettamente comprensibile e con un livello di approfondimento ottimo da 7 votanti.


Presentazione

Questo tutorial nasce per un mio amico, ma visto che spesso vedo domande del genere su forum o mailing list ho deciso di renderlo pubblico. Vi consiglio di leggerlo tutto di in un fiato, tanto non è molto lungo.

Introduzione

I database sono fondamentali nella programmazione di qualsiasi tipo di gestionali, questi permettono di organizzare in maniera ottimale i dati. Sui dati immagazzinati in un database si possono svolgere differenti operazioni, questi infatti possono essere modificati, aggiornati, aggiunti, eliminati o consultati, a seconda delle nostre necessità.
Per svolgere queste operazioni si ricorre a un insieme di programmi detto DBMS (DataBase Manegement System) che in pratica è un software che fa da tramite tra l'utente e la base di dati, fornendo così una rappresentazione logica dei dati.
I DBMS forniscono diversi modi per rappresentare un database logicamente:
» Gerarchici.
» Ad oggetti.
» Relazionali.

Qui li ho elencati in ordine di apparizione sul mercato. I gerarchici hanno caratterizzato i primi DBMS sviluppati intorno alla metà degli anni 70.
Questo sistema è basato sugli alberi. E' tutt'ora utilizzato anche se in pochi casi.
Il modello ad oggetti è dato da un insieme di classi, che definiscono le caratteristiche ed il comportamento degli oggetti del database.
Questo permette di inserire nel database delle informazioni sulle operazioni da eseguire oltre ai dati.
Ad oggi sfortunatamente manca un linguaggio standard per l'interrogazioni dei database basati sul modello ad oggetti.
Il modello relazionale nato da Codd nel 1970 è stato però iniziato ad utilizzare intorno al 1980.
Questo modello è basato sul principio di insieme ed è il modello che noi useremo in questo tutorial.
I dati sono organizzati in delle tabelle bidimensionali composte da un numero fisso di colonne dette attributi ed in genere sono etichettati e da un numero fisso di righe dette enuple.
Le righe identificano un record, cioè un insieme di campi che corrispondono al valore della colonna in quella riga. Qui di seguito segue una rappresentazione grafica sommaria di un database; quella più in alto nella seguente lista è formata da quella seguente e così via:


Approfondiamo ora l'argomento DBMS. Elenchiamo ora i suoi componenti software basilari :
» GESTORE DEGLI ACCESSI: trasforma le operazioni di accesso ai dati in chiamate a procedure del gestore della memoria fisica.
» PRECOMPILATORE DEL LINGUAGGIO OSPITE: svolge un'analisi delle istruzioni del Database Definition Language (DDL) e ne ricava le specifiche chiamate alle procedure del DBMS e passa il codice trasformato al processore di interrogazioni.
» PROCESSORE DI INTERROGAZIONI: traduce le istruzioni dal linguaggio usato a quello del DBMS.
» COMPILATORE DELLE DEFINIZIONI DEI DATI: riceve le istruzioni dal linguaggio usato per definire la tipologia dei dati del database e genera il Dizionario dei dati.
» GESTORE DELLA MEMORIA FISICA: gestisce l'allocazione dei dati nella memoria di massa.
» INTERFACCIA UTENTI: permette all'utente di interagire col database.
Il DBMS deve svolgere i seguenti compiti:
» Deve controllare in dati in modo da evitarne la ridondanza.
» Gestisce l'accesso ai dati attraverso uno schema concettuale, cioè deve fornire una organizzazione visiva del database indipendentemente dall'organizzazione fisica dei dati.
» Deve gestire l'accesso concorrente ai dati in modo da evitare blocchi e errori.

I database che prenderemo in considerazione in questa lezione sono quelli realizzati con Microsoft Access ™.
Fatta questa piccola premessa se non avete familiarità con Access vi consiglio la lettura di qualche piccolo tutorial. Passiamo ora a spiegare a spiegare la tecnologia che useremo in questo tutorial, cioè ADO.


La tecnologia OLEDB

La Microsoft con UDA (Universal Data Access) ha definito un insieme di interfacce e regole necessarie per la gestione di qualsiasi tipo di base di dati.
Da UDA è nata una interfaccia di programmazione COM che incapsula diversi servizi di fornitura e gestione dei dati, questa è: OLEDB.
Questa tecnologia permette di lavorare con le basi di dati più diverse tra loro, usando comunque una interfaccia simile per tutte.
L'OLEDB è costituito da diversi oggetti che hanno diverse funzioni specifiche.

I tre componenti che formano l'OLEDB sono:
» DATA PROVIDERS: sono oggetti che contengono ed espongono i dati al mondo esterno.
» SERVER COMPONENT: elaborano e trasportano i dati, sostituendo le logiche DBMS delle fonti di dati con cui lavorano.
» DATA CONSUMER: sono le applicazioni necessarie.
La tecnologia OLEDB è necessaria naturalmente per quasi tutti i database presenti sul mercato.


La tecnologia ADO

La sigla A.D.O. sta per ActiveX Data Object ed è basata su OLEDB. Questo modello di programmazione molto semplice permette:
» La connessione ai dati OLEDB.
» L'esecuzione di comandi di accesso alla sorgente.
» La gestione automatica di una cache con i risultati di tali comandi per meglio esaminare e manipolare l'informazione derivata dalla rete.
» La riduzione generale del traffico di rete rendendo così tale modello l'interfacci ideale per lo sviluppo su internet.

Grazie ad ADO abbiamo finalmente una interfaccia comune ed estendibile allo stesso tempo per l'accesso ai dati. In questo modo si tende ad eliminare la necessità di dover scegliere quale metodologia di accesso usare per ogni applicazione.
Passiamo ora al fulcro del nostro discorso.



Aprire la connessione

Il metodo che noi useremo per aprire la connessione ad un database access è la seguente:

strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & App.Path & _ "\fattura.mdb"
Set conn = CreateObject("ADODB.Connection")
conn.Open strConn

Naturalmente preceduto dalla dichiarazione di queste variabili:

Public conn, strConn, SQL, rs

Il nome del nostro database è fattura.mdb e si trova nella stessa cartella della applicazione (come si nota facilmente da App.path & "\....":). Fino ad ora non sono ancora state specificate le tabelle e i campi che andremo a interrogare tramite una query sul database, questi infatti saranno specificati man mano.

La prima query

Fare una query significa in parole povere porre una domanda al database.
Noi potremmo chiedere al database diverse cose, ad esempio di dirci tutti i record che contiene in una determinata tabella, quanti record ha con un campo uguale a un determinato valore e quali sono etc… per fare questo ricorriamo a dei comandi SQL (Structured Query Language), che altro non è che uno standard per l'interrogazione dei database, usato da ormai tutti i DBMS in circolazione (DataBase Manegement System) con qualche piccola variazione, noi utilizzeremo quello usato da MS Access ™.
Il nostro primo esempio consisterà nel leggere tutta la tabella fornitori del database fatture.mdb (già aperto in precedenza). Per svolgere questa semplice operazione bastano le seguenti due righe di codice:

SQL = "SELECT * FROM fornitori" 'seleziona i dati dalla tabella fornitori
Set rs = CreateObject("ADODB.Recordset") 'setta rs come un record per ADO
rs.Open SQL, conn 'apre il record

Il simbolo asterisco (star in inglese) (*) viene detta wildcard e serve per indicare che vengono selezionati tutti i record del database, se invece vorremo operare la ricerca solo su alcuni campi, li dovremo specificare, scelta migliore anche quando servono tutti per far risparmiare tempo di elaborazione al computer.
Nel successivo esempio selezioniamo tutti i campi nazione e cognome, dove in nazione è contenuta la parola Italia:

SQL = "SELECT nazione, cognome FROM fornitori WHERE nazione = 'Italia' " 'seleziona i dati dalla tabella fornitori
Set rs = CreateObject("ADODB.Recordset") 'setta rs come un record per ADO
rs.Open SQL, conn 'apre il record

Per interrogare un determinato campo, dopo aver fatto il SELECT si utilizza l'rs("nomecampo"); per esempio per visualizzare il valore del campo in una textbox scriveremo:

Text1.Text = rs("nomecampo")

Nella seguente tabella illustreremo in principali comandi SQL con un piccolo esempio:

Alter Table Modifica la struttura di una tabella.
Ha due clausole:
ADD: aggiunge una colonna alla tabella, la sintassi è:


"ALTER TABLE Tabella ADD NuovaColonna Char(1)"

Char(1) è il tipo della colonna.
Si può aggiungere anche INIT dopo il Char(1) per inizializzare la colonna.
MODIFY: modifica le caratteristiche di una determinata colonna. La sintassi è:

"ALTER TABLE Tabella MODIFY NuovaColonna Char(1)"
Between Inserito in un SELECT vede se il valore di un campo è contenuto in un determinato range. Esempio:

"SELECT * FROM tabella WHERE campo BETWEEN A And Z"
Count Conta i record selezionati. Per leggere il valore ottenuto bisogna fare rs("varConta"). Esempio:

"SELECT COUNT(*) As varConta FROM tabella"
Create Table Crea una tabella.
Esempio:

"CREATE TABLE tabella(var1 char(15) not null, var2 char(20) not null)"

Crea una tabella con due campi di nome var1 con una lunghezza di massimo 15 caratteri e var2 con una lunghezza massima di 20 caratteri.
Entrambi devono essere non nulli.
Delete Elimina uno o più record da una tabella.
Sintassi:


"Delete * FROM tabella WHERE <condizione>"

Esempio:

"Delete * FROM tabella WHERE id=1"
Distinct Viene usato per selezionare i campi da un database escludendo i suoi duplicati. Esempio:

"SELECT DISTINCT campo FROM tabella"

Oppure è usato in combinazione col Count per evitare di contare due volte i campi duplicati.
Esempio:


"SELECT COUNT(DISTINCT campo) As varConta FROM tabella"
Drop Table Cancella una tabella.Esempio:"Drop Table tabella"
In Seleziona dei record che hanno dei valori specificati in un campo.
Esempio:

"SELECT * FROM tabella WHERE campo IN ('valore1', 'valore2')"
Insert Into Inserisce dei dati in una tabella. Lo inserisce in coda alla tabella.
Esempio:


"Insert Into user (a, b, 11)"

se si inseriscono tutti i campi oppure

"INSERT INTO tabella(campo1, campo2) VALUES (val_campo1, val_campo2)

inserisce solo nei campi specificati
Min e Max Seleziona il minimo o il massimo da un database. Queste funzioni possono anche essere usate con stringhe e non solo con valori numerici come si potrebbe pensare.
Esempio:

"SELECT Min(campo) FROM tabella" 'il minimo

"SELECT Max(campo) FROM tabella" 'il massimo
Order By Ordina in ordine crescente (ASC) o decrescente (DESC) i dati contenuti in un un Select.
Esempio:

"SELECT * FROM tabella Order By campo ASC" 'ordine crescente

"SELECT * FROM tabella Order By campo DESC" 'ordine decrescente
SELECT(LIKE) Seleziona dei dati da un database. Non mi dilungo perché l'ho già fatto nella sezione 4 di questo tutorial. Aggiungo solo che il carattere jolly tra due stringhe è l'underscore (_). L'esempio troverà pala, para, paca, etc…
Esempio:

"SELECT * FROM tabella WHERE campo='pa_a'"
UPDATE

Modifica il valore di un campo già presente nel database. La sintassi è:

"UPDATE NomeTabella SET campo1 = 'nuovovalore1', campo2 = 'nuovovalore2'… WHERE nomecampo = 'valorecampodiriferimento'"

Ho escluso i comandi riguardanti le interrogazioni su più tabelle. Tengo a dire che l'SQL è un linguaggio di interrogazione database molto utile in molte situazioni ed utilizzabili in quasi tutti i linguaggi (se non tutti), vi consiglio quindi la lettura di un libro (o tutorial) apposito.

NOTA: Per una lista più ricca di comandi SQL vi consiglio una lettura di una lista presente nel mio tutorial intitolato: "MySQL per Tutti" presente su www.e-salerno.it.

Davide Cerbo scrive sul sito www.e-salerno.it