Linda De Benedictis
27 Gennaio 2019Mario Falanga
27 Gennaio 2019appunti scolastici di informatica di Elena
Il linguaggio SQL può essere ospitato in qualsiasi linguaggio di programmazione.
E’ 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.