Verfasst: 03.09.2008 09:12
Hier mal was, was ich grad gebaut hab :
Ich glaube, dass deine Insert Prozedure wegen dem
"ID INTEGER PRIMARY KEY" bei der Erstellung der Tables nicht funktioniert. Aber da ist Kiffi der Spezialist, denk ich
Code: Alles auswählen
UseSQLiteDatabase()
Global DBErr.s="" ,DB.l
Procedure SQ_DBError()
If DatabaseError()
Debug DatabaseError()
EndIf
EndProcedure
Procedure SQ_DBCreate(Filename.s)
Protected Nr.l
Nr = CreateFile(#PB_Any,Filename)
If Nr
CloseFile(Nr)
DBErr = "DB '"+Filename+"' wurde erstellt."
Else
DBErr = "DB '"+Filename+"' konnte nicht erstellt werden."
EndIf
EndProcedure
Procedure SQ_DBOpen(Filename.s,User.s="",Pass.s="")
DB = OpenDatabase(#PB_Any, Filename, User, Pass, #PB_Database_SQLite)
If DB = 0
DBErr = "DB '"+Filename+"' konnte nicht geöffnet werden."
Else
DBErr = "DB '"+Filename+"' wurde geöffnet."
EndIf
SQ_DBError()
EndProcedure
Procedure SQ_DBClose()
If DB
CloseDatabase(DB)
DBErr = "DB geschlossen."
Else
DBErr = "DB konnte nicht geschlossen werden, da nicht geöffnet !"
EndIf
SQ_DBError()
EndProcedure
Procedure SQ_DBCreateTable(Tabelle.s,Felder.s)
If DB
If DatabaseUpdate(DB, "Create Table "+Tabelle+" ("+Felder+")")
DBErr = "Tabelle : '"+Tabelle+"' angelegt."
Else
DBErr = "Tabelle : '"+Tabelle+"' konnte nicht angelegt werden."
EndIf
Else
DBErr = "Datenbank nicht geöffnet."
EndIf
SQ_DBError()
EndProcedure
Procedure SQ_DBQuery(SQL.s)
If DB
If DatabaseUpdate(DB, SQL)
DBErr = "Ok."
Else
DBErr = "SQL = '"+sql+"' hat nicht funktioniert."
EndIf
Else
DBErr = "DB nicht geöffnet."
EndIf
SQ_DBError()
EndProcedure
Procedure SQ_DBView(Tabelle.s)
If DB
If DatabaseQuery(DB, "SELECT * FROM " + Tabelle)
Debug "Datenansicht :"
Debug "----------------------------------------"
While NextDatabaseRow(DB)
For i = 0 To DatabaseColumns(DB) - 1
Debug DatabaseColumnName(DB, i) + " : " + GetDatabaseString(DB, i)
Next i
Debug "----------------------------------------"
Wend
Debug ""
DBErr = "Ok."
Else
DBErr = "Datenbank abfrage war nicht erfolgreich!"
EndIf
DBErr = "DB nicht geöffnet."
EndIf
SQ_DBError()
EndProcedure
;#### Datenbank Beispiel (nicht perfekt aber funktional)
;#### DB anlegen
SQ_DBCreate("c:\000.db")
Debug DBErr
;#### DB oeffnen
SQ_DBOpen("c:\000.db")
Debug DBErr
;#### Ein Table namens Daten und Felder Namens Feld1 und Feld2 werden angelegt
SQ_DBCreateTable("Daten","Feld1 ,Feld2")
Debug DBErr
;#### Es werden Daten in die Tables und Felder eingespeist
For i = 0 To 10
SQ_DBQuery("INSERT INTO Daten Values ( 'Nr."+Str(i)+"', "+Str(i)+")")
Next i
Debug DBErr
;#### Daten werden ausgelesen
SQ_DBView("Daten")
;#### DB Schliessen
SQ_DBClose()
Debug DBErr
;#### Die Procedure SQ_DBError meldet den originalen DB Fehlercode,
;#### nützlich, wenn Fehler in der SQL Syntax sind.
;####
;#### Die Variable DBErr meldet den selbstgemachten Fehlercode
;#### ist vielleicht doppelt gemoppelt, aber nützlich ;) für mich zumindest
;####
;#### Im groben sind die Prozeduren aus dem Verständnis von Kiffi's Codes
;#### zusammengebastelt. Besten Dank dafür an Kiffi ;)
"ID INTEGER PRIMARY KEY" bei der Erstellung der Tables nicht funktioniert. Aber da ist Kiffi der Spezialist, denk ich
