Ich will was in SQL machen und fange gerade erst an damit die Beispiele mal zu probieren.
Dieser funktioniert ohne Probleme:
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; PureBasic - Database example file
;
; (c) Fantaisie Software
;
; ------------------------------------------------------------
;
UseSQLiteDatabase()
Procedure CheckDatabaseUpdate(Database, Query$)
Result = DatabaseUpdate(Database, Query$)
If Result = 0
Debug DatabaseError()
EndIf
ProcedureReturn Result
EndProcedure
DatabaseFile$ = GetTemporaryDirectory()+"Database.sqlite"
If CreateFile(0, DatabaseFile$)
CloseFile(0)
If OpenDatabase(0, DatabaseFile$, "", "")
CheckDatabaseUpdate(0, "CREATE TABLE food (name CHAR(50), weight INT)")
CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('apple', '10')")
CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('pear', '5')")
CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('banana', '20')")
If DatabaseQuery(0, "SELECT * FROM food WHERE weight > 7")
While NextDatabaseRow(0)
Debug GetDatabaseString(0, 0)
Wend
FinishDatabaseQuery(0)
EndIf
CloseDatabase(0)
Else
Debug "Can't open database !"
EndIf
Else
Debug "Can't create the database file !"
EndIf
Code: Alles auswählen
UseSQLiteDatabase()
Filename$ = OpenFileRequester("Wähle einen Dateinamen", "PureBasic.sqlite", "*.sqlite|*.sqlite", 0)
If CreateFile(0, Filename$)
Debug "Datenbank-Datei erstellt"
CloseFile(0)
EndIf
If OpenDatabase(0, Filename$, "", "")
Debug "Verbunden mit PureBasic.sqlite"
If DatabaseUpdate(0, "CREATE TABLE info (test VARCHAR(255));")
Debug "Tabelle erstellt"
EndIf
EndIf
Ergebnis = OpenDatabase(0, "PureBasic.sqlite", "", "")
Debug Ergebnis ;Wert: 34609824
Name$ = DatabaseColumnName(0, 0)
Debug Name$ ;Wert: leer obwohl es doch test sein müsste oder?
DatenbankID = DatabaseID(0)
Debug DatenbankID ;Wert: 3189744
Text$ = GetDatabaseString(0, 0)
Debug Text$ ;Wert:leer
Ergebnis2 = OpenDatabase(0, "PureBasic.sqlite", "", "")
Debug Ergebnis2 ;Wert: 34609824 ==> sollte auch so sein
; Zuerst stellen wir eine Verbindung zu der 'employee' (Angestellten) Tabelle her
;
If DatabaseQuery(0, "SELECT * FROM PureBasic.sqlite") ; Ermittelt alle Einträge in der 'employee' Tabelle
While NextDatabaseRow(0) ; alle Einträge durchlaufen
Debug GetDatabaseString(0, 0) ; Inhalt vom ersten Feld anzeigen
Wend
FinishDatabaseQuery(0)
Else
MessageRequester("Fehler", "Kann die folgende Abfrage nicht ausführen: "+DatabaseError())
EndIf
Egal ob da Purebasic oder PureBasic.sqlite in dieser Zeile steht:
Code: Alles auswählen
If DatabaseQuery(0, "SELECT * FROM PureBasic.sqlite")
Hat da jemand eine Idee an was das liegt und was ich falsch mache?
Danke