Italian [risolto] B4J - un dataset veloce

ivanomonti

Well-Known Member
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 è 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").
Non vedo una proprietà che accetti la JSON per costruire i menu, mentre è così nel Designer:
1587046619984.png

Evidentemente è il Designer stesso che la gestisce.
 
Top