EnzoCurky ha scritto:
In visulbasic l'oggetto recordset aveva delle funzioni EOF e BOF ke mi segnalavano se stavo puntando rispettivamente all ultimo record o al primo...
Anch'io, come tanti altri, provengo dal mondo VB e ricordo benissimo la possibilità di testare BOF/EOF, però in Gambas non ho incontrato da nessuna parte l'indicazione per testare la condizione di BOF, mentre puoi benissimo testare quella di EOF. Io non so come hai organizzato la lettura in avanti o indietro della tabella di DB che ti interessa, ma dentro la classe evento "Click" dei tuoi pulsanti potresti interrogare EOF così:
'.............................scorrendo la tabella in avanti....................................
RecTabx.Movenext
IF RecTabx.Available = FALSE THEN 'raggiunto EoF
Message.INFO("--------------- Trovata fine tabella ---------------"
ENDIF
'.............................scorrendo la tabella all'indietro....................................
RecTabx.Moveprevious
IF RecTabx.Available = FALSE THEN 'raggiunto BoF
Message.INFO("--------------- Trovata Inizio tabella ---------------"
ENDIF
oppure potresti contare i record della tabella, e testare ogni volta l'ID del record letto e, se esso contiene "1", vuol dire che sei arrivato al 1° record assoluto della tabella, mentre se hai letto il record "n" della tabella vuol dire che ha raggiunto la sua fine fisica:
'.............................scorrendo la tabella in avanti....................................
DIM iNumRecTab as integer
iNumRecTab = RecTabx.Count
RecTabx.Movenext
IF RecTabx!Id = iNumRecTab THEN 'raggiunto ultrimo record della Tabella
Message.INFO("--------------- Trovata fine tabella ---------------"
ENDIF
'.............................scorrendo la tabella all'indietro....................................
RecTabx.Moveprevious
IF RecTabx.Id = 1 THEN 'raggiunto primo record della Tabella
Message.INFO("--------------- Trovata Inizio tabella ---------------"
ENDIF
Ho scritto solo l'indispensabile, ma se non dovesse esser chiaro possiamo entrare più nello specifico.
Ciao