wenn ich den untenstehenden Code ausführe, wird der letzte Datensatz nicht angezeigt.
Mein Verständnis: durch die Whileschleife springt er über den letzten Datensatz.
Soweit ok.
Mit PreviousDatabaseRow springe ich ein Satz zurück.
Somit müßte mit GetDatabaseString(#Datenbank,Spalte) der letzte Datensatz auszulesen sein.
Genau das macht er nicht. Warum?
Ein anschließendes FirstDatabaseRow funktioniert.
Da springt er wieder korrekt zum ersten Datensatz.
Code: Alles auswählen
#db0=0
UseSQLiteDatabase()
DatabaseFile$ = "i:\purebasic\forumexamples\bestand.sqlite"
;DatabaseFile$ = GetTemporaryDirectory()+"\Database.sqlite"
Debug DatabaseFile$
If CreateFile(#db0, DatabaseFile$)
CloseFile(#db0)
If OpenDatabase(#db0, DatabaseFile$, "", "")
DatabaseUpdate(#db0, "CREATE TABLE bestand (Dsnr INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE Not NULL, Name VARCHAR(40) , Stueck NUMERIC(10) , Preis NUMERIC(10,2))")
DatabaseUpdate(#db0, "INSERT INTO bestand (Name, Stueck, Preis) VALUES ('"+Name$+"', '"+Stueck$+"', '"+Str(Preis)+"')")
DatabaseUpdate(#db0, "INSERT INTO bestand (Name, Stueck, Preis) VALUES ('Tastatur', '5', '25.55')")
DatabaseUpdate(#db0, "INSERT INTO bestand (Name, Stueck, Preis) VALUES ('DVD-Laufwerk', '20', '33.00')")
DatabaseUpdate(#db0, "INSERT INTO bestand (Name, Stueck, Preis) VALUES ('Festplatte 160GB', '23', '133.00')")
DatabaseUpdate(#db0, "INSERT INTO bestand (Name, Stueck, Preis) VALUES ('USB-Stick 2GB', '44', '3.00')")
If DatabaseQuery(#db0, "SELECT * FROM bestand")
While NextDatabaseRow(#db0)
Debug "Datensatznummer: "+ GetDatabaseString(#db0, 0)
Debug "Artikel : "+ GetDatabaseString(#db0, 1)
Debug "Stück : " + GetDatabaseString(#db0, 2)
Debug "Preis : "+ GetDatabaseString(#db0, 3)
Wend
EndIf
FirstDatabaseRow(#db0)
While NextDatabaseRow(#db0)
;Debug GetDatabaseString(#db0, 0)
Wend
;FirstDatabaseRow(#db0)
PreviousDatabaseRow(#db0)
Debug "_______________________"
Debug ""
Debug "Datensatznummer: "+ GetDatabaseString(#db0, 0)
Debug "Artikel : "+ GetDatabaseString(#db0, 1)
Debug "Stück : " + GetDatabaseString(#db0, 2)
Debug "Preis : "+ GetDatabaseString(#db0, 3)
FinishDatabaseQuery(#db0)
Else
Debug "Can't open database !"
EndIf
Else
Debug "Can't create the database file !"
EndIf