Italian [risolto] B4J - un dataset veloce

ivanomonti

Expert
Licensed User
Longtime User
uso sqlite al momento ma trovo limitato il recorset oltre che notare una certa lentezza sempre in microsoft surface mi chievevo se esiste altro approccio al mio.

sqlite:
Dim sqlite As SQL
    
    Try
        sqlite.InitializeSQLite(File.DirApp,"lavagna.sqlite", False)
        Dim rs As ResultSet
        Dim query As String = "select DISTINCT team from item order by team ASC"
        rs = sqlite.ExecQuery(query)
        
        Dim mn As ContextMenu
        mn.Initialize("")
        bt.ContextMenu=mn
        
        Do While rs.NextRow
            Dim mc As MenuItem
            mc.Initialize(rs.GetString2    (0),"btTeam")
            mn.MenuItems.Add(mc)
        Loop
        
        rs.Close
 

LucaMs

Expert
Licensed User
Longtime User
Non è lento SQLite, sarà lenta la costruzione dei menu, probabilmente.
Se ad esempio all'interno del Loop tu eseguissi una semplice addizione e calcolassi il tempo dell'elaborazione, vedresti che sarebbe velocissima.

Quasi certamente creando la stringa JSON nel loop, anziché i menu, e creando questi soltanto alla fine, usando appunto la stringa, il tutto sarebbe più veloce
(tenendo fuori dal conteggio del tempo impiegato l'inizializzazione del DB, che andrebbe fatta "in altro luogo e momento").
 

LucaMs

Expert
Licensed User
Longtime User
Non vedo una proprietà che accetti la JSON per costruire i menu, mentre è così nel Designer:

Evidentemente è il Designer stesso che la gestisce.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…