Italian ResultSet1.NextRow Primo record?

Gigi59

Member
Licensed User
Ciao a tutti,
ho iniziato da poco con B4i, e incontro qualche problema con le liste
per prima cosa con ResultSet1.nextRow non vedo il primo record ma inizia dal secondo
poi la lista funziona (senza il primo record) solo la prima volta quando l'aggiorno si sballa il Layout.
Qualche consiglio? :) Grazie per l'aiuto
Saluti
 

sirjo66

Well-Known Member
Licensed User
Mi sembra che "nextRow" significa "vai al prossimo record", per cui è normale che si posizioni sul secondo.

Una volta che hai il risultato leggi il primo record, poi fai un nextRow e potrai leggere il secondo
 

Gigi59

Member
Licensed User
Innanzi tutto grazie per la risposta!
si effettivamente mi sembra la soluzione migliore però
ho visto diversi esempi ma nessuno legge il primo risultato e poi fa nextrow, come è possibile non si accorgono che facendo così salta il primo record?
 

LucaMs

Expert
Licensed User
Non ho b4i, ma guarda se questo si adatta:

B4X:
Dim rs As ResultSet = sql1.ExecQuery("SELECT ...")
Do While rs.NextRow
   Log(rs.GetString2(0))
Loop
rs.Close
 

Gigi59

Member
Licensed User
Ciao Luca

in questo modo è corretto altrimenti come uso
Log(rs.GetString2(0)) in questo esempio?

Dim rs As ResultSet = SQL.Exec...
If rs.NextRow=true then
dim id as int = rs.GetString("ID") ' FIRST RECORD
End If

DoWhile rs.NextRow
dim id as int = rs.GetString("ID") ' FROM SECOND RECORD TO END

Loop
rs.Close

Grazie per la tua pazienza:)
 

LucaMs

Expert
Licensed User
B4X:
Dim ID1, ID2 As Int
Dim IDLetto As Boolean = False

DoWhile rs.NextRow
   If IDLetto Then
      ID2 = rs.GetInt("ID") ' FROM SECOND RECORD TO END
   Else
      ID1 = rs.GetID("ID") ' FIRST RECORD
      IDLetto = True
   End If
Loop

rs.Close
Probabilmente puoi fare in modi migliori, ma al volo mi è venuto questo :)
 
Top