Die SQLite Library
Sowohl der Sourcecode als auch vorkompilierte Binaries für Linux, Mac OS X und Windows können von der SQLite-Homepage heruntergeladen werden. Soll die Datenbank in einem Embedded-System (beispielsweise Embedded-Linux mit ARM-Prozessor) benutzt werden, so empfiehlt es sich, den Sourcecode der SQLite Library direkt mit dem passenden Cross Compiler zu übersetzen. Das Kompilieren der Datenbank ist besonders einfach, wenn die mit “amalgamation“ gekennzeichnete Version übersetzt wird, denn bei dieser Version ist der komplette Sourcecode für die Library in den Dateien sqlite3.h und sqlite3.c vereinigt. Eine weitere Datei (shell.c) enthält den Quellcode für das Kommandozeileninterface, das zusammen mit der Library erstellt wird. Die folgende Befehlssequenz zeigt das Entpacken der komprimierten Datei, die Konfiguration mit configure und das Übersetzen des Quellcodes mit make.
> tar -xzvf sqlite-amalgamation-.tar.gz > cd sqlite- > ./configure –host=arm-linux > make
Der Parameter -host=arm-linux führt dazu, dass anstatt mit dem Native Compiler mit dem Cross Compiler für die ARM-Architektur übersetzt wird. Falls das Kompilieren erfolgreich war, ist die statische Bibliothek libsqlite3.la und das Kommandozeileninterface sqlite3 direkt im Source-Verzeichnis zu finden, während die dynamische Bibliothek libsqlite3.so im .libs-Verzeichnis versteckt wird. Für die weitere Entwicklung ist es oftmals hilfreich, das Kommandozeileninterface für das Entwicklungssystem und das Embedded-System zu übersetzen. Die Datenbankdatei lässt sich dann sowohl auf dem Entwicklungssystem als auch auf dem Embedded-System öffnen, auch wenn beide Systeme unterschiedliche Bytereihenfolgen haben.
Das SQLite-Kommandozeileninterface
Von Haus aus bringt SQLite nur ein Kommandozeileninterface, mit dem die SQL-Befehle direkt ausgeführt oder auf der Konsole eingegeben werden können. Bei der vorkompilierten Version von der SQLite-Homepage ist die Programmversion direkt im Dateinamen enthalten. Allgemein gilt folgende Syntax:
> sqlite3-3.6.4.bin [Optionen] Dateiname [SQL-Befehle]
Während die Angabe des Dateinamens zwingend ist, ist die Angabe von Optionen und SQL-Befehlen optional. Werden keine SQL-Befehle eingegeben, so gelangt man in den interaktiven Modus. Falls die Datenbank noch nicht existiert, wird eine neue mit dem übergebenen Dateinamen erstellt. Ansonsten wird eine vorhandene Datenbank geöffnet. Das SQLite-Kommandozeileninterface unterscheidet zwei unterschiedliche Kommandotypen:
- SQL-Kommandos, die mit Semikolon abgeschlossen werden und
- allgemeine Kommandos, die mit einem Punkt beginnen und ohne Semikolon enden.
Eine Auflistung der allgemeinen Befehle erhält man, indem man .help auf der Konsole eingibt. Um einen Einblick in die Programmierung mit SQLite zu geben, wird im folgenden Beispiel mit dem Kommandozeileninterface eine Tabelle mit Buchinformationen wie Autor, Herausgeber, Titel und Erscheinungsdatum angelegt und es werden Daten eingefügt. Im nächsten Absatz werden die Daten mit einem C/C++-Programm aus der Datenbank ausgelesen.
CREATE TABLE tb_books (id INTEGER PRIMARY KEY AUTOINCREMENT,
author TEXT,
publisher TEXT,
title TEXT,
year DATE);
INSERT INTO tb_books (author, publisher, title, year) values
("Linus Torvalds", "HANSER", "Just For Fun -
Wie ein Freak die Computerwelt revolutionierte", 2001);
INSERT INTO tb_books (author, publisher, title, year) values
("Robert Schwebel", "mitp", "Embedded Linux", 2001);




