jop, ist OK so. SQLiteInit() hast Du vorher sicherlich auch ausgeführt, oder?PureBasic4.0 hat geschrieben:Reicht das aus, um DBHandle korrekt zu befüllen?:
Code: Alles auswählen
DBHandle = SQLiteOpen(#DBName) If Not DBHandle MessageRequester("Fehler","Die Datei "+#DBName+" konnte nicht geladen bzw. erstellt werden",#MB_ICONSTOP) End EndIf
ich benutze SQLite in etlichen Projekten und habe noch nie einen IMAPureBasic4.0 hat geschrieben:Nein, PureBasic mit seinen IMAs!
bekommen. Zumeist sitzt der Bug vor der Tastatur

Hier ein kleiner Testcode ohne IMAs:
Code: Alles auswählen
EnableExplicit
XIncludeFile "sqlite.pbi"
Define.l Neu
Define.l i
Define.l dbHandler
Define.SQ3_TABLEMAP Table
#Database="D:\test.db"
SQLiteInit()
If FileSize(#Database) = -1 ; Datenbank noch nicht vorhanden?
Debug "Datenbank ist (noch) nicht vorhanden"
Neu = #True
Else
Debug "Datenbank ist bereits vorhanden"
Neu = #False
EndIf
dbHandler = SQLiteOpen(#Database) ; Neue Datenbank wird geöffnet / erstellt
If Not dbHandler
If Neu
MessageRequester("", "Datenbank konnte nicht erstellt werden")
Else
MessageRequester("", "Datenbank konnte nicht geöffnet werden")
EndIf
End
EndIf
If Neu
Debug "Tabelle mit Feldern wird erstellt..."
SQLiteExecute(dbHandler, "Create Table myTestTable (Field1, Field2, Field3)")
Debug "Testwerte einfügen..."
For i = 1 To 10
SQLiteExecute(dbHandler, "Insert Into myTestTable (Field1, Field2, Field3) Values ('Feld1 Wert" + Str(i) + "', 'Feld2 Wert" + Str(i) + "', 'Feld3 Wert" + Str(i) + "')")
Next
i=0
EndIf
Debug "Auslesen der Daten..."
SQLiteGetTable(dbHandler, "SELECT * FROM myTestTable", Table)
If Table
While SQLiteNextRow(Table)
i + 1 : Debug "Row " + Str(i) + ":"
While SQLiteNextCol(Table)
Debug SQLiteValue(Table)
Wend
Wend
SQliteFreeTable(Table)
EndIf
SQLiteClose(dbHandler)
SQLiteEnd()
kann man angeben, braucht man aber nicht. Das ist ja gerade einer derCaptn. Jinguji: hat geschrieben:Öhmm... braucht man bei SQLITE keine Typ- und Größenangaben für die Columns ?
Riesenvorteile, die SQLite bietet.

// Edit: Der Code wurde um ein fehlendes SQliteFreeTable(Table) erweitert.