Il linguaggio SQL


appunti scolastici di informatica di Elena

Il linguaggio SQL può essere ospitato in qualsiasi linguaggio di programmazione.

È possibile accedere al DB x reperire info ke poi vengono rielaborate dal pro gramma stesso.

X quanto riguarda la gestione di dati,prevede diverse modalità di accesso a dati esterni al programma e a altri oggetti. Modello ADO molto diffuso xkè fonda tecnologia OLEDB.

X usare oggetti messi a disp del mod.ADO,ke VB ha introdotto tra i componenti ufficiali dell’ambiente,occorre aprire il menu Progetto/riferimenti e selez la voce Microsoft ActiveX Data Object 2.0.

Loggetto Connection rappresenta una connessione con un’origine dati,ke nel nostro caso è il DB relazionale.

Dichiarare: Dim Cn As New ADODB.Connection

Aprire cn Open: Cn.open Provider=Microsoft.Jet.OLEDB.4.0;data Source=C:Clienti.mdb”

Provider indica il nom dellOLEDB ke in qst caso è Jet,data source è la fonte dei dati.

Comandi sql ke nn restituiscono righe: cm insert,update,set,dolete uso execute dell’oggetto connection.(Cn.excute dolete from clienti where cod=10″)

Chiusura: la conness cn il provider verrà kiusa cn il metodo close.

 

Loggetto recordset rappre insieme dei record estratti dal DB x mezzo di1query.Ogni riga del risultato di1query è1record del recordset,ogni colonna è1campo.

Dichiarare:Dim Rs As New ADODB.Recordset

Collegare il recordset dv si prelevano i dati:Rs.ActiveConnection=Cn.

Proprietà source,1stringa ke contiene il nom di1tab di sql: Rs.Source=Clienti”.

X associare i risultati di sopra:Rs.Source=Select * from Clienti”.

Dati aperti cn:Rs.Open.

X rendere il cod+coinciso dichiaro la sorgente:Dim Rs As New ADODB.Recordset

Rs.Open=select”,Cn

Uso di1comando SQL:Dim Rs Dim Query as string..Rs.ActiveConnection=Cn..Query=Select..”..Rs.Open Query.

Qst query è di tipo statico xkè l’istruzione SQL è fissata prima dellesecuz del proge nn in fase di esecuz.Sn molto+frequenti le query dinamiche dv listruz viene costruita dallapplicaz in base alle info formite dall’esterno.

X ottenere righe della tab(apici da1lato all’altro):Query=selectRs.Open Query

Apici cn tipo num:Query=select * from clienti where fatt=”&str(num)  Rs.Open Query.

X vedere se il recordset è vuoto controllo se la proprietà di fine file è vera(Rs.EOF=True).

La navigaz all’interno del recordset avviene tramite i metodi MoveFirst,MoveLast,MoveNext,MovePrevious). Il metodo Find differisce dal precedente xkè x gli oggetti ADO nn esiste la proprietà NoMatch:se la ricerca nn va a buon fine,viene raggiunta la fine del Recordset(EOF=True).

 

Il cursori è1oggetto ke gestisce il reperimento,navigazione,modifica righe.I diversi tipi del modello ADO sn:adOpenForwardOnl:è il valore di default,permette di effettuare sl scorrimento in avanti(moveNext);nn vengono aggiornati a mano a mano ke cambiano i valori sul Db(sn1copia di dati);adOpenStatic:” nn presenta la limitaz dello scorrimento solo avanti,risultano+lenti e occupano memory;adOpenKeyset:nn si riferiscono a1insieme di righe ,ma1insieme scorrevole di puntatori a righe,sn consentite le istruì x navig,inserim,modifica,cancellaz.nn si aggiornano autormatic,necessario metodi Requery o Resync;adOpenDynamic:” cn diff ke nel momento in cui cambiano i valori delle righe sul DB logg Recordset assoc viene automatic aggiornato.

Laggiornam del recordset,dp la creaz di1recordset è sempre possibile ke1evento modifichi direttam sul DB le info presenti nel recordset stesso.se nn usiamo l’ultimo cursore qst modific nn sn riportate automatic. Per allineare i dati a quelli del DB è necessario richiam metodo Requery ke ricostruisce il recordset.altro metodo Resync ke effettua lallineam nn ricostruendo la query ma aggiornando sl le righe modificate.