Italian [B4J] Resultset.rowcount non esiste?!?.

Sabotto

Active Member
Licensed User
Con B4A apro un Resultset per poi riempire una tabella e con il .rowcount valorizzo un flag che mi dice se la tabella è vuota.
Ho visto solo ora che in B4J il .Rowcount non esiste.
Ho quindi usato un "workaround". Ma è quello giusto? E poi, perchè non c'è .rowcount in B4J?!?! (ci sono rimasto male...)
B4X:
    Dim Tab_Vuota as boolean
    #If B4A
        Dim ResSet As ResultSet = GL.SQL1.ExecQuery2(Query, Array As String(GL.IDVeicolo))
        Tab_Vuota = (ResSet.RowCount = 0 ) 'flag per sapere se la Tabella di quel veicolo è vuota
    #Else If B4J
        Private Query1 As String = "SELECT COUNT(*) FROM TabMovimenti WHERE FK_Veicolo = ?"
        Tab_Vuota = (GL.SQL1.ExecQuerySingleResult2(Query1,Array As String(GL.IDVeicolo))=0) 'mi serve per sostituire RowCount che in B4J non c'è
        Dim ResSet As ResultSet = GL.SQL1.ExecQuery2(Query, Array As String(GL.IDVeicolo))
    #End if
 

Star-Dust

Expert
Licensed User
Longtime User
Non esiste. È una proprietà di Cursor.
Se vuoi il conteggio delle righe con Resultset devi fare una query count(*)

Cursor è una classe che esiste solo in b4a
 

Star-Dust

Expert
Licensed User
Longtime User
In b4a esiste rowcount in b4j e b4i devi fare una query
 

Sabotto

Active Member
Licensed User
Si, a parte la piccolezza che la riga con Dim ResSet... può essere unica e dopo l'IF.
In effetti deve stare prima dell'IF altrimenti il Rowcount non posso ottenerlo
B4X:
    Private Query As String = "SELECT * FROM TabMovimenti WHERE FK_Veicolo = ?"
    Dim ResSet As ResultSet = GL.SQL1.ExecQuery2(Query, Array As String(GL.IDVeicolo))
    #If B4A
        Tab_Vuota = (ResSet.RowCount = 0 ) 'flag per sapere se la Tabella di quel veicolo è vuota
    #Else If B4J
        Private Query1 As String = "SELECT COUNT(*) FROM TabMovimenti WHERE FK_Veicolo = ?"
        Tab_Vuota = GL.SQL1.ExecQuerySingleResult2(Query1,Array As String(GL.IDVeicolo)) 'mi serve per sostituire RowCount che in B4J non c'è
    #End if
 

Sabotto

Active Member
Licensed User
sempre per la precisione deve essere
B4X:
Tab_Vuota = (GL.SQL1.ExecQuerySingleResult2(Query1,Array As String(GL.IDVeicolo))) = 0 'mi serve per sostituire RowCount che in B4J non c'è
 
Top