Hi, i think that there are problems while looping over a cursor with sqllite.... it is slow slow slow.
someone has encountered the same problem?
today 5 seconds
yesterday before new version less then 1 second
regards Paolo
someone has encountered the same problem?
today 5 seconds
yesterday before new version less then 1 second
regards Paolo
B4X:
Dim Cursor1 As Cursor
Dim ssell As String
If lstelencoGiri.IsInitialized = False Then
Return
End If
lstelencoGiri.Clear1
ssell = "Select min(Esito) Esito, CodiceDestinatario,max(RagioneSociale) RagioneSociale , max(Indirizzo) Via,max(Citta) Citta, max(IDTransazione) IDTransazione from Viaggi where IDFoglioDiViaggio = '" & Operazioni.idfoglioviaggio & "' and Filiale = '" & Operazioni.siglaFiliale & "' group by CodiceDestinatario Order by Ordinamento Asc"
Cursor1 = Operazioni.SQL1.ExecQuery( ssell)
Dim ik As Int
ik = 0
Dim bpassato As Boolean
Dim bgiallo As Boolean
bpassato = False
Dim colore As Int
Dim ultimob As Int
Operazioni.girifatti = 0
Operazioni.giritotale = Cursor1.RowCount
For i = 0 To Cursor1.RowCount - 1
Cursor1.Position = i
'individuazione tipo colore
If Cursor1.GetString("Esito") = "S" Or Cursor1.GetString("Esito") = "X" Then
colore = Colors.RGB(6,129,35)
bpassato = True
bgiallo = True
ik = i
Operazioni.girifatti = Operazioni.girifatti +1
Else
If Cursor1.GetString("Esito") = Null Then
colore = Colors.White
If bpassato = False Then
bpassato = True
ik = i
End If
ultimob = i
Else
If Cursor1.GetString("Esito") = "I" Then
colore = Colors.Yellow
bpassato = True
bgiallo = True
ik = i
Else
colore = Colors.Red
bpassato = True
bgiallo = True
ik = i
End If
End If
End If
Dim sfondo As Int
If i Mod 2 = 0 Then
sfondo = Colors.Black
Else
sfondo = Colors.DarkGray
End If
Dim indices As String
indices = i + 1
Dim ordinamento As Int
ordinamento = Cursor1.GetInt("CodiceDestinatario")
Dim ssel, scons, srit As String
ssel = "Select count(RagioneSociale) tot from Viaggi where TipoServizio = 'C' and IDFoglioDiViaggio = '" & Operazioni.idfoglioviaggio & "' and Filiale = '" & Operazioni.siglaFiliale & "' and CodiceDestinatario = '" & Cursor1.GetString("CodiceDestinatario") & "' group by CodiceDestinatario"
Dim ct As Cursor
ct = Operazioni.SQL1.ExecQuery(ssel)
If ct.RowCount > 0 Then
ct.Position = 0
scons = " - N. Cons.: "& ct.GetInt ("tot")
Else
scons = " N. Cons.: 0"
End If
ct.close
ssel = "Select count(RagioneSociale) tot from Viaggi where TipoServizio = 'R' and IDFoglioDiViaggio = '" & Operazioni.idfoglioviaggio & "' and Filiale = '" & Operazioni.siglaFiliale & "' and CodiceDestinatario = '" & Cursor1.GetString("CodiceDestinatario") & "' group by CodiceDestinatario"
ct = Operazioni.SQL1.ExecQuery(ssel)
If ct.RowCount > 0 Then
ct.Position = 0
srit = " - N. Rit.: "& ct.GetInt ("tot")
Else
srit = " - N. Rit.: 0"
End If
ct.Close
lstelencoGiri.Add(CreateListaItem(indices & ") " & Cursor1.GetString("RagioneSociale") & CRLF & Cursor1.GetString("Via") & " " & Cursor1.GetString("Citta") & scons & srit, lstelencoGiri.AsView.Width, 35dip,colore,sfondo, Cursor1.GetString("IDTransazione")), 60dip , ordinamento)
Next
Cursor1.Close