Italian [RISOLTO] Svuotare B4XTable per aggiornarla

Sabotto

Active Member
Licensed User
Nell'Appear di una B4xPage chiamo la Sub ShowTable che riempie una B4XTable da un DB
Prima di caricare i dati però devo svuotarla altrimenti ogni volta mi ritrovo con le righe aggiunte alla precedente chiamata.
Come la svuoto?
B4X:
Private Sub ShowTable
 
    'Svuotamento vecchi dati
    tblData.Clear                 '===> cosi dà errore
 
    tblData.SetData(Array()) '===> Così non la svuota. Le righe si aggiungeranno comunque alle precedenti
 
    Private Query As String = "SELECT * FROM ..."
    Dim ResSet As ResultSet = GL.SQL1.ExecQuery2(Query, Array ...
    Do While ResSet.NextRow
        Dim row(5) As String
        row(0) = ResSet.GetString("ID")
        row(1) = ResSet.GetString...
        ...   
        lstRecord.Add(row)
    Loop
    ResSet.Close
  
    tblData.SetData(lstRecord)
 
End Sub
 
Last edited:

Sabotto

Active Member
Licensed User
Fatto. Non funziona lo stesso. Mi aggiunge le righe
B4X:
    Dim lstVuota As List
    lstVuota.Initialize
    tblData.SetData(lstVuota)   
    
    Private Query As String = "SELECT * FROM...
 
Last edited:

Sabotto

Active Member
Licensed User
'Mi dà errore sulla prima linea
'java.lang.RuntimeException: Object should first be initialized.

B4X:
tblData.sql1.ExecNonQuery("DELETE * FROM DATA")
tblData.Refresh
tblData.UpdateTableCounters
'
 

Sabotto

Active Member
Licensed User
Mah. Mi sa che passerò ad una xClv per visualizzarli. Che poi non capito (perchè mi da errore e non sono riuscito ad applicarlo) ma B4Xtable.Clear cancella solo i dati o l'intera tabella compreso intestazioni di colonna e colonne stesse?
 

LucaMs

Expert
Licensed User
Longtime User
Fatto. Non funziona lo stesso. Mi aggiunge le righe
A me si, ergo funziona :)

Guardando il tuo codice nel primo post...
lstRecord.Add(row)
è evidente che lstRecord sia una variabile globale, in quanto non dichiarata in quella routine (a me "piace" anteporre una "m" per nomi di variabili private dichiarate a livello di (m)odulo, come mlstRecord. "g" se la variabile fosse pubblica: glstRecord).

Direi che prima di passarlo a SetData "forse" 😄 dovresti svuotarla. Potresti anche usare questa stessa per svuotare la B4XTable con quella "tecnica",anziché una nuova List creata appositamente.

Modifico il codice del tuo primo post...
B4X:
Private Sub ShowTable
 
    'Svuotamento vecchi dati
    lstRecord.Clear
    tblData.SetData(lstRecord)
 
    Private Query As String = "SELECT * FROM ..."
    Dim ResSet As ResultSet = GL.SQL1.ExecQuery2(Query, Array ...
    Do While ResSet.NextRow
        Dim row(5) As String
        row(0) = ResSet.GetString("ID")
        row(1) = ResSet.GetString...
        ...  
        lstRecord.Add(row)
    Loop
    ResSet.Close
 
    tblData.SetData(lstRecord)
 
End Sub
 
Last edited:

Sabotto

Active Member
Licensed User
Direi che prima di passarlo a SetData "forse" 😄 dovresti svuotarla. ...
Ancora una volta, hai individuato il problema. Che pirla che sono! Non svuotavo la list, per cui era lei a conservare i vecchi dati e ad aggiungerli. Sei TOP!
 

LucaMs

Expert
Licensed User
Longtime User
Ancora una volta, hai individuato il problema
Aluuura, non dico sempre, ma ogni tanto, marcate il mio post come "Soluzione", se ha risolto il problema.

1702090650929.png


Altri membri hanno un bel po' di "Solutions affibbiate" e sono invidioso 😄. Anzi, andate a cercare tuuuuutti i vostri thread, controllate se vi ho fornito la soluzione ed agite 😄

Per ogni "soluzione" incasserò la bellezza di... ZERO euro 🤣 (come al solito 😄)


[Ovviamente scherzo; non sono invidioso e con le "soluzioni" non ci faccio nemmeno la birra 😄 I "Like" un po' fanno piacere]
 

Sabotto

Active Member
Licensed User
Io non la trovo sul pc sta iconetta.
Sull'estrema destra c'è Bookmark, il numero del post e basta.
Anzi, a tal proposito chiedo: A che serve quella icona Bookmark? La premo, salvo, e poi? Cosa mi salva un link di quel post? E dove sta, dove lo salva intendo...?
E visto che ci siamo: Cos'è "B4XDiscord Unofficial"?

lucams.png
 
Last edited:

Sagenut

Expert
Licensed User
Longtime User
Forse è disponibile solo sui forum principali che sono Question.
Questo credo sia considerato tipo un chit chat.
Boh
 

Mahares

Expert
Licensed User
Longtime User
I think the OP's English is very good and he is capable of posting in the English forum. It benefits more if you post in the English forum as I noticed your threads in the Italian (I do not understand or speak it) are very interesting. Also, you may give others a chance to give you a broader spectrum of answers.
 

Sabotto

Active Member
Licensed User
ovviamente stai parlando di LucaMs...giusto?
Comunque di solito chiedo prima nel forum italiano. Poi se non ottengo soluzione (quasi mai...) vado sull'internazionale.

(obviously you're talking about LucaMs...right?)
However I usually ask first in the Italian forum. Then if I don't get a solution (almost never...) I go international.
 

Sabotto

Active Member
Licensed User
Parlava di thread interessanti quindi pensavo che parlasse di lei, maestro...😉
Che poi io chieda prima qui e poi all'estero è puro patriottismo...e stima in tutti voi
 

Sabotto

Active Member
Licensed User
Solo adesso,rileggendomi, credo che tu LucaMs abbia interpretato il mio "quasi mai" nel senso che quasi mai ottengo soluzioni. Invece intendevo dire che quasi mai non le ottengo.
Così giusto per essere precisi.
È che tu ce l'hai con le doppie negazioni che diventano affermazioni....😁
 
Top