29 ott 2010

Lotusscript verso Db2 - parte seconda

Una volta connessi al nostro Db2 (vedi post precedente della serie) passiamo a scrivere e leggere i dati , che e' quello che realmente ci serve.
Il primo esempio e' ovviamente quello piu' semplice: costruiamo uan query in SQL , la passiamo al Db2 e poi gestiamo i risultati.


Nelle dim inserisco una dichiarazione
Dim fldLst As New LCFieldList

Cosa significa ? LCFieldList rappresenta un results set che puo contenere uno o piu' record coi relativi campi ed e' il "contenitore" dove vanno a finire i risultati della query .
Poi vediamo come utilizzarla

Primo passo : in una variabile inserisco la query SQL
interroga="select * from schema.tabella where nome='Pippo' order by cognome"
(occhio alle virgolette/apici)
e poi la faccio eseguire , magari controllando che mi ritorni effettivamente dei dati:
If (connect.Execute (interroga, fldLst) = 0) Then
Print "Spiacente, non ci sono documenti che corrispondono alla query "
Exit Sub
End If
Da notare la la parte connect.Execute (interroga, fldLst) dove in pratica chiedo di eseguire la query SQL tramite la LCConnection che ho dichiarato (vedi post precedente) e di inserire il risultato in fldLst.
Nel caso la execute mi ritorni uno zero significa che non ci sono record corrispondenti e quindi avverto ed esco.

Se invece i risultati ci sono lo script prosegue e comincia a ciclarli con un while cosi' strutturato:
While (connect.Fetch (fldLst) > 0)
.....
Wend

ed al cui interno inserisco quello che mi serve: banalmente faccio una print dei dati estratti
Print fldlst.nome(0)
Print fldlst.cognome(0)
dove nome e cognome sono i campi Db2 ritornati dalla query
In pratica l'elemento chiave qui (ed in altri casi simili) e' la classe LCFieldlist , una volta capito il suo scopo e funzionamento si va' via spediti .
Ah, dimenticavo: LCFieldlist contiene ovvimanete degli oggetti di tipo LCField che sono i campi veri e propri della tabella, poi parliamo anche di questi

Nessun commento: