MvD-Service hat geschrieben:Ich mache das jetzt so:
ok, hier ein paar Verbesserungsvorschläge:
* Nimm SQLiteColValue() zum Auslesen der Datenbankfelder. Hier kannst
Du direkt das Feld angeben, das ausgelesen werden soll. Damit ersparst
Du Dir SQLiteNextCol()
* SQLiteResetPos(), SQLiteSelectCol() und SQLiteSelectRow() vor der
While-Schleife kannst Du weglassen. Nachdem Du SQLiteGetTable()
ausgeführt hast, steht der Datenzeiger initial sowieso auf Zeile 0 und
Spalte 0.
* 'z' brauchst Du nicht mitzuzählen. Verwendest Du den Parameter -1 bei
der Zeilenangabe im ListIconGadget, so wird die hinzuzufügende neue
Zeile immer an das Ende der Liste angefügt.
* Verschieb das SQLiteFreeTable() direkt in die "If Table"-Abfrage (also in
Deinem Fall hinter das "Wend").
* Zwischen inhalt3$ und inhalt4$ ist kein Spaltentrennzeichen angegeben.
Da Du von 5 Spalten schriebst, habe ich das mal in dem Code unten
ergänzt.
Hier noch mal der Code, so wie ich ihn schreiben würde:
Code: Alles auswählen
ClearGadgetItemList(#ListIcon_0)
Table.SQ3_TABLEMAP
SQliteGetTable(hDB, "SELECT * FROM " +SZ+ " ", Table)
If Table
While SQLiteNextRow(Table)
inhalt0$ = SQLiteColValue(Table, 0)
inhalt1$ = SQLiteColValue(Table, 1)
inhalt2$ = SQLiteColValue(Table, 2)
inhalt3$ = SQLiteColValue(Table, 3)
inhalt4$ = SQLiteColValue(Table, 4)
AddGadgetItem(#ListIcon_0, -1, inhalt0$ + #LF$ + inhalt1$ + #LF$ + inhalt2$ + #LF$ + inhalt3$ + #LF$ + inhalt4$)
Wend
SQLiteFreeTable(Table)
EndIf
Zu einem früheren Posting von Dir:
MvD-Service hat geschrieben:Code: Alles auswählen
schreiben:
Table.SQ3_TABLEMAP
SQliteGetTable(hDB, "SELECT * FROM " +SZ+ " ", Table)
If SQliteExecute(hDB,"INSERT INTO " +SZ+ " (Kursnummer, Kursbezeichnung, Anzahl, Geaendert, Datum) VALUES ('" + kursnummer + "', '"+ kursbezeichnung + "', '" + anzahl + "', '" + benutzer + "', '" + wann +"')") = #False
Debug SQliteErrorMsg(hDB)
EndIf
Return
Vor dem SQliteExecute() brauchst Du kein SQliteGetTable() auszuführen.
SQliteGetTable() benötigt man nur dann, wenn man Daten aus der
Datenbank
lesen will. Hier willst Du ja lediglich in die Datenbank
schreiben.
MvD-Service hat geschrieben:Code: Alles auswählen
schreiben:
If SQliteExecute(hDB,"INSERT INTO " +SZ+ " (Kursnummer, Kursbezeichnung, Anzahl, Geaendert, Datum) VALUES ('" + kursnummer + "', '"+ kursbezeichnung + "', '" + anzahl + "', '" + benutzer + "', '" + wann +"')") = #False
Debug SQliteErrorMsg(hDB)
EndIf
Return
Kleiner Tipp noch: Über kurz oder lang solltest Du Dir angewöhnen Gosub
zu vermeiden und anstelle dessen mit Prozeduren zu arbeiten.
Grüße ... Kiffi