Seite 1 von 3
[erledigt] SQLite und PB 4.2B3: umsteigen ?
Verfasst: 03.04.2008 17:12
von scholly
moin, moin...
Bisher nutze ich in meiner Video-Verwaltung die sqlite3.dll und das include von ts-soft|Kiffi|MLK.
Mit Erscheinen von PB 4.2b3 frage ich mich nun, ob es Zeit ist, auf PB-inter (UseSQLiteDatabase()) zu wechseln.
Lohnt es sich schon?
Wenn "Ja", hab ich direkt schon Probleme: ich check nicht, wie das alles nun geht.
Brauch ich die Dll und das Include garnicht mehr, weil es Update\PureLibraries\Windows\Libraries\sqlite3.lib gibt?
Wie kann man notfalls zu anderen SQLite-Versionen wechseln?
Der 12-Zeiler in der UseSQLiteDatabase()-Doku hilft mir auch nicht so ganz, wie ich nun die ganzen Aufrufe des Includes
- SQLiteOpen(DBName)
SQliteExecute(DBref, "CREATE TABLE maintable (ID INTEGER PRIMARY KEY"+interim+")")
SQliteGetTable(DBref, "SELECT * FROM maintable", maintable)
SQliteErrorMsg(DBref)
SQliteExecute( DBref, "Replace Into mainTable ("...") Values ("...")")
SQLiteClose(DBref).
usw,usf..
ersetzten/umschreiben soll.
Mag jemand mir (und vielleicht auch anderen) mit einem Code-Vergleich auf die Sprünge helfen?
mdv...
Re: SQLite und PB 4.2B3: umsteigen ?
Verfasst: 03.04.2008 17:22
von ts-soft
scholly hat geschrieben:
Mit Erscheinen von PB 4.2b3 frage ich mich nun, ob es Zeit ist, auf PB-inter (UseSQLiteDatabase()) zu wechseln.
Lohnt es sich schon?
Warte die Final ab, da kommt eine etwas aktuellere Lib als in der Beta
(info aus engl. Forum)
scholly hat geschrieben:
Brauch ich die Dll und das Include garnicht mehr, weil es Update\PureLibraries\Windows\Libraries\sqlite3.lib gibt?
genau, brauchste nicht mehr
scholly hat geschrieben:
Wie kann man notfalls zu anderen SQLite-Versionen wechseln?
eher garnicht
scholly hat geschrieben:
Der 12-Zeiler in der UseSQLiteDatabase()-Doku hilft mir auch nicht so ganz, wie ich nun die ganzen Aufrufe des Includes
- SQLiteOpen(DBName)
SQliteExecute(DBref, "CREATE TABLE maintable (ID INTEGER PRIMARY KEY"+interim+")")
SQliteGetTable(DBref, "SELECT * FROM maintable", maintable)
SQliteErrorMsg(DBref)
SQliteExecute( DBref, "Replace Into mainTable ("...") Values ("...")")
SQLiteClose(DBref).
usw,usf..
ersetzten/umschreiben soll.
Mag jemand mir (und vielleicht auch anderen) mit einem Code-Vergleich auf die Sprünge helfen?
mdv...
Du kannst die normalen Datenbank-Befehle von PB nutzen, hast dadurch
den Vorteil auch schneller auf ODBC umzusteigen.
Auf längere Sicht ist der Umstieg anzuraten. Du könntest auch die API der
mitgelieferten Lib nutzen (Sqlite-Befehle mit _ am ende), so sollte ein
umschreiben der Include kein grosser Hit sein, denke ich mal, habs noch
nicht probiert.
Gruß
Thomas
Verfasst: 03.04.2008 17:23
von bobobo
die sqlite3.dll wird als lib inkludiert.
Für einen Versionsumstieg auf ne neuere sqlite3Version wirst du auf PB vertrauen müssen. (einer der Gründe warum ich die eingebaute Lib sicher
nur unter Umständen benutzen werde)
Ansonsten benutzt du die üblichen Databasebefehle
die (englische) Hilfe hat doch ein nettes Demo intus
Code: Alles auswählen
UseSQLiteDatabase()
Filename$ = OpenFileRequester("Choose a file name", "PureBasic.sqlite", "*.sqlite|*.sqlite", 0)
If CreateFile(0, Filename$)
Debug "Database file created"
CloseFile(0)
EndIf
If OpenDatabase(0, Filename$, "", "")
Debug "Connected to PureBasic.sqlite"
If DatabaseUpdate(0, "CREATE TABLE info (test VARCHAR(255));")
Debug "Table created"
EndIf
EndIf
die anderen DatabaseFunktionen funktionieren da wie gehabt.
(Solange die SQLiteDB als lokaler Datenspeicher benutzt werden
soll und Multiuserfähigkeit keine Rolle spielt (wobei das auch
durchaus (allerdings mit mehr Aufwand) machbar ist) steht einem
Einsatz der eingebauten sqlite.lib aus PB nichts grundsätzliches
mehr im Wege. PB ist aber noch beta mit allen Vor- und Nachteilen.
(Ich bin so kackenlahm heute

)
Verfasst: 03.04.2008 17:32
von ts-soft
bobobo hat geschrieben:(Ich bin so kackenlahm heute

)

Verfasst: 03.04.2008 18:10
von scholly
hm...
ODCB interessiert mich nicht, weil ich da keinen Einstieg gefunden habe und auf der anderen Seite Dank Kiffi (und anderen) und dem Include mit Sqlite in dem notwendigen Umfang zurechtkomme.
Umschreiben werd/will ich das Include mangels Fähigkeit auch nicht.
Die "normalen Datenbank-Befehle" hab ich nie benutzt, weil es mir noch nichtmal gelungen ist, diesen ODCB-Kram zum Erstellen einer DBase zu bewegen.
Und das ist auch der Grund, warum der von bo³ zitierte 12-Zeiler mir in keinster Weise beim Umstieg hilft.
Wenn ich dann noch lese, daß man im Zweifelsfall nicht mal schnell die vorherige oder nächste Version von SQLite3 zum Testen benutzen kann,
lass ichs wohl besser so, wie es ist.
Verfasst: 03.04.2008 18:32
von bobobo
das von mir gepostet Example ist so lauffähig und legt ne DB an.
(pb 4.2 -3)
ODBC muss Dich bei Nutzung der eingebauten sqlite.lib auch gar nicht weiter kümmern.
Du benutzt nur die eingebauten Databasefunktionen wie bei einer ODBC-Verknüpfung mit UseODBCDatabase.
Es bleibt bei der weiteren Bearbeitung der SQLIte-db bei etwas SQl-Syntx in SQLiteManier.
Die DatabaseFunktionen von PB sind ja nicht so mies und durchaus
benutzbar.

Verfasst: 19.04.2008 07:38
von ts-soft
Verfasst: 19.04.2008 13:09
von scholly
ts-soft hat geschrieben:Vielleicht interessiert Dich das Update:
Abba sischa, dat !
Ich folge allerdings Deiner Empfehlung und warte die 4.2_FINAL ab.
Trotzdem frag ich schonmal rück:
Ich brauch meinen alten Code nicht zu ändern ?
Ich kann durch einfaches wechseln des Includes sowohl mit der Original-DLL als auch der PB-Lib testen/checken, wenn ich mir nicht klar bin, wo ein Fehler herkommt (oder ob der vor der Tastatur sitzt

)
Verfasst: 19.04.2008 21:44
von ts-soft
> Ich brauch meinen alten Code nicht zu ändern ?
Nein, solange Du keine Datenbank mit dem ASCII-Flag erstellt hast.
Verfasst: 21.04.2008 13:43
von bobobo
scholly hat geschrieben:
Ich kann durch einfaches wechseln des Includes sowohl mit der Original-DLL als auch der PB-Lib testen/checken, wenn ich mir nicht klar bin, wo ein Fehler herkommt (oder ob der vor der Tastatur sitzt

)
das auf jeden Fall .. ich nutz zum sqlite-Datenbankerzeugen und drin
rumfuhrwerken eins (oder mehrere) der kostenfreien SQLIte-Manager
und oder Sqlite-odbc-Treiber. Das macht die db genausowenig kaputt
wie ein Zugriff mit alten prä-pb4.20er Sqlite-Lib /Includes oder der neuen
PB4-Sqlite-lib.