PDA

View Full Version : [vb6] Problema EOF


jackk87
08-05-2008, 18:09
Buonasera,
ho un ciclo "do while not sql.eof" e questo ciclo lo utilizzo per caricare dati estratti da una query in label con logicamente il controllo matrice perchè vengono caricate dinamicamente quindi all'interno del ciclo ho load label(i) sapete dirmi il perchè una volta che è finito il recordset il ciclo rinizia da capo e quindi mi viene fuori l'errore oggetto già caricato?grazie vi posto il codice

i=1
do while not sql.eof
load label(i)
label(i).caption=sql!nome
label(i).visible=true
label(i).Top = label(i - 1).Top + 300
sql.movenext
i=i+1
loop
:help:

© Rocky
09-05-2008, 02:22
Hai provato così ?

Do While Not EOF.Sql


Probabilmente il Loop While non trova il: End Of File
controlla con il Debug...e

magari aspetta qualche altra risposta, non sono molto pratico con SQL :)

MarcoGG
09-05-2008, 09:18
i=1
do while not sql.eof
load label(i)
label(i).caption=sql!nome
label(i).visible=true
label(i).Top = label(i - 1).Top + 300
sql.movenext
i=i+1
loop


Il tuo codice pare corretto, ma potrebbe dipendere da quello che hai scritto prima, o dalla routine in cui hai inserito la porzione che hai postato...
Senza dubbio per una semplice estrazione riga per riga da tabella DB, ti consiglio questa procedura, valida nella stragrande maggioranza dei casi ( nel mio esempio con DB Access... ) :

Dim CN As ADODB.Connection
Set CN = New ADODB.Connection
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset

Dim strCN As String
strCN = "driver={Microsoft Access Driver (*.mdb)};dbq=DB1.mdb"

CN.Open strCN
RS.Open "SELECT * FROM TABELLA", CN, adOpenKeyset, adLockOptimistic
If Not RS.EOF Then RS.MoveFirst
While RS.EOF = False
...
...
...
RS.MoveNext
Wend
RS.Close
CN.Close
Set CN = Nothing
Set RS = Nothing

;)

jackk87
09-05-2008, 17:47
grazie marco ho risolto così :D