German SQL und NUMERIC

strupp01

Active Member
Licensed User
Longtime User
Nachdem wir jetzt vom englischen Forum ins deutsche wechseln, tue ich mich etwas leichter.
Habe dein Programm mir angesehen. So funktioniert es. Wahrscheinlich aber auch bei 250 Datensätzen, die immer mehr werden, ca. 2-3 Sekunden bis zum Ergebnis.
 

klaus

Expert
Licensed User
Longtime User
250 Datenstze ist eigentlich noch wenig.
Versuchst Du im Debug Modus oder im Release Modus.

1577442372378.png


Im Release Modus sollte es schneller sein.
Der Debugger ist in machen Fällen langsam.

Du kanst auch, ab und zu, auf Clean Project klicken, das lehrt den Debugger.

1577442506981.png
 

strupp01

Active Member
Licensed User
Longtime User
Ich meinte schon im Release-modus. Dies aber in anderem Modul, wo die Anzahl der auszugebenden Felder 5 und 1 Icon und nicht wie hier 1 Icon und 3 Felder sind .
Ansonsten ist alles gleich, also keine weiteren zeitaufwendigen Aktionen.
 

strupp01

Active Member
Licensed User
Longtime User
Kannst du mir auch mal zu meinem Verständnis den Aufruf der Sub-Routine von Erel für mein Beispiel mitteilen. Damit ich auch das verstehe
 

strupp01

Active Member
Licensed User
Longtime User
Das mit den 2-3 Sekunden liegt daran, dass ich nach jedem Schleifendurchlauf ein Sleep(0) einprogrammiert habe. Ich habe dies gemacht, damit das ScrollView direkt angezeigt wird und im Hintergrund die restlichen Daten ausgelesen und aufgelistet werden.
 

klaus

Expert
Licensed User
Longtime User
Füge diese Routine in dein Program ein:
B4X:
Private Sub ExecQuerySingleResultDouble2(SQL1 As SQL, Query As String, Args() As String) As Double
    Dim rs As ResultSet = SQL1.ExecQuery2(Query, Args)
    Dim Result As Double = 0
    If rs.NextRow Then
        Result = rs.GetDouble2(0)
    End If
    rs.Close
    Return Result
End Sub

Und dann, anstatt
Gesamtsumme = Starter.SQL_DB.ExecQuerySingleResult("Select total(Guthaben) from Konten")
benutze
Gesamtsumme = ExecQuerySingleResultDouble2(Starter.SQL_DB, "Select total(Guthaben) from Konten", Null)
 

strupp01

Active Member
Licensed User
Longtime User
Werde ich morgen probieren. Muss jetzt leider weg.
Diese Abfrage Konto_Guthaben_alt = Main.SQL_DB.ExecQuerySingleResult("SELECT Guthaben FROM Konten where Konto_Name = '" & Label_Konto.Text.Trim & "'")
gibt aber auch nur eine Stelle nach dem Komma wieder. Da habe ich dann das gleiche Problem.
 

klaus

Expert
Licensed User
Longtime User
So:
Konto_Guthaben_alt = ExecQuerySingleResultDouble2(Starter.SQL_DB, "SELECT Guthaben FROM Konten WHERE Konto_Name = ?", Array As String(Label_Konto.Text.Trim))
Wenn Du immer zwei Kommastellen anzeigen willst musst Du das mit
NumberFormat2(Konto_Guthaben_alt, 1, 2, 2, False)
machen.
 

strupp01

Active Member
Licensed User
Longtime User
@klaus ,
Habe jetzt getestet und ist alles zur Zufriedenheit abgelaufen. Habe wieder dazugelernt und komme jetzt weiter. Danke nochmals für deine Hilfe, wie schon öfter in der Vergangenheit. Bin froh, dass solche Experten wie du, einem mit wesentlich weniger Wissen wie mir hilfs.
Rutsch gut ins neue Jahr, alles Gute und Gruss strupp01
 
Top