TSQLiteDatabase: A SQLite3 Database Wrapper
Kompatible SQLite3 Version: 3.6.16
TSQLiteDatabase ist ein nahezu vollständiger
OOP-Wrapper um die SQLite3.dll. Er wurde erstellt da ich für eine Anwendung in Delphi 2009 ein kleine, freie Datenbank brauchte nd ich mich für SQLite entschieden hatte. Da ich aber für den Zugriff eine kleine, schlanke Klasse brauchte und mir die im Internet gefundenen Lösungen nicht gefallen haben, habe ich kurzerhand selbst einen Wrapper geschrieben.
Zur Nutzung wird die SQLite3.dll benötigt
Features
Verbinden mit einer SQLite3 kompatiblen Datenbank
Ausführen von
SQL-Statments
Bindings in den Statments
Erzeugen von Collations, Aggregaten und Funktionen
Fortschrittsereignis bei längeren Prozessen
Autorisieren von bestimmten
SQL-Aktionen
Blob-Zugriff als Stream
Weiterarbeiten mit SQLite-internen Werten
Limits setzen
In Delphi 2009:
Unicode
NoVCL kompatibel
Beispiele zur Benutzung
Zur Datenbank verbinden und ein "INSERT" ausführen
Delphi-Quellcode:
var DB: TSQLiteDatabase;
begin
DB := TSQLiteDatabase.Create('
test.db');
DB.Execute('
INSERT INTO TEST (TEST) VALUES ("TEST");');
DB.Free;
end;
Ein "INSERT" mit Binding
Delphi-Quellcode:
var DB: TSQLiteDatabase;
Command: TSQLiteCommand;
begin
DB := TSQLiteDatabase.Create('
test.db');
Command :=
DB.Command('
INSERT INTO TEST (TEST) VALUES (?);');
Command.Binding[1].AsString := '
Test';
Command.Execute;
Command.Free;
DB.Free;
end.
Auflisten der Daten einer Tabelle
Delphi-Quellcode:
var DB: TSQLiteDatabase;
Query: TSQLiteQuery;
begin
DB := TSQLiteDatabase.Create('
test.db');
Query :=
DB.Query('
SELECT * FROM TEST');
while Query.Next
do
begin
WriteLn(
Query[0].AsString);
end;
Query.Free;
DB.Free;
end.
Beispiel mit vielen "INSERT"s
Delphi-Quellcode:
var DB: TSQLiteDatabase;
Command: TSQLiteCommand;
begin
DB := TSQLiteDatabase.Create('
test.db');
DB.Execute('
BEGIN TRANSACTION');
// Damit nicht so viele Festplattenzugriffe gemacht werden müssen
Command :=
DB.Command('
INSERT INTO TEST (TEST) VALUES (?);');
For I := 1
to 200
do
begin
Command.Reset;
Command.Binding[1].AsString := '
Test'+IntToStr(I);
Command.Execute;
end;
Command.Free;
DB.Execute('
END TRANSACTION');
DB.Free;
end.
Getestet mit...
Delphi 2009 größtenteils, da ich es im Moment in einem Projekt einsetze
Delphi 7 rudimentär
SVN: svn://delphidev.net/public/SQLiteDatabase
Wäre klasse, wenn sich das wer von euch mal ansehen oder sogar ein bisschen testen könnte