Welcome to Desktop Search Engine Comming soon
            News
            Another
Site
            Sqlite
            Opengl
           



C++-Programmierung: SQlite

Aus Wikibooks

Sqlite ist eine kleine Funktionsbibliothek zum Ansprechen einer Sqlite-Datenbankdatei. Sqlite-Datenbankdateien haben die Dateiendung ".db" (oder eine beliebige andere). Das Besondere an Sqlite ist, dass der Nutzer keinerlei Software installieren muss, um Sqlite verwenden zu können; im Verzeichnis der ausführbaren Datei (*.exe) muss sich nur die Sqlite-Bibliothek befinden.

Einrichten von Sqlite

Zuerst sollten Sie sich von der Webseite von Sqlite die Bibliothek herunterladen (für Linux und für Windows). Danach entpacken Sie dieses Verzeichnis auf Ihre Festplatte und "sagen" Ihrer IDE/ Ihrem Compiler, in welchem Verzeichnis sich die "sqlite3.h" und die "sqlite3.lib" befinden. Nun können Sie Sqlite zum ersten Mal in einem Programm verwenden.

Eine Datenbankdatei öffnen

Sqlite enthält Strukturen und Funktionen. Um eine Datenbank zu öffnen verwenden Sie die Funktion sqlite3_open. Die 3 im Funktionsnamen steht dabei für die Version von Sqlite; es gab auch einmal eine Funktion sqlite2_open. Die Funktion sqlite3_open erwartet zwei Parameter: Als erstes den Dateinamen als char* und zweitens einen Doppelzeiger auf eine Struktur namens sqlite3. Diese Struktur repräsentiert eine Datenbankdatei von Sqlite. Der zweite Parameter wird also mit einer funktionierenden Instanz von sqlite3 ausgefüllt. Die Funktion sqlite3_open gibt dann einen bestimmten Ergebniscode zurück; im Idealfall sollte dieser SQLITE_OK sein, dann wurde die Datenbank korrekt geöffnet. Sollte doch etwas schiefgegangen sein, z.B. weil der Pfad nicht stimmt, kann man sich mit der Funktion sqlite3_errmsg eine Beschreibung des Fehlers (auf Englisch) ausgeben lassen. Mit der Funktion sqlite3_close kann man die Datenbank wieder schließen. Aber genug der vielen Worten, das Ganze einmal in der Praxis:

#include <iostream>
#include <string>
#include <sqlite3.h>

int main()
{
// Als erstes legen wir einen sqlite3-Zeiger an
sqlite3* Database;
// und einen char-Zeiger für den Pfad zur Datenbank
std::string Path;

// Danach fragen wir den Benutzer nach dem Pfad zur Datenbankdatei
std::cout << "Pfad zur Datenbankdatei: ";
std::cin >> Path;

// Nun können wir die Datenbank öffnen!
if(sqlite3_open(Path.c_str(), &Database) != SQLITE_OK)
{
// Es ist ein Fehler aufgetreten!
std::cout << "Fehler beim Öffnen: " << sqlite3_errmsg(Database) << std::endl;

// Programm beenden
return 1;
}

// Es hat alles geklappt, die Datenbank wurde geöffnet
std::cout << "Datenbank erfolgreich geöffnet!" << std::endl;

// Jetzt können wir die Datenbank wieder schließen
sqlite3_close(Database);

std::cout << "Datenbank geschlossen!" << std::endl;

// Programm beenden
return 0;
}

Wenn Sie dieses Programm kompilieren, wird wahrscheinlich ein Linkerfehler ausgegeben, weil wir die "sqlite3.lib" nicht mitgelinkt haben. Haben Sie diese dann mitgelinkt, wird das Kompilieren und Linken tadellos funktionieren, doch wenn Sie die Anwendung dann starten wollen, kommt eine Meldung, dass "sqlite3.dll" nicht gefunden wurde. Diese müssen Sie noch aus dem Sqlite-Ordner in das Verzeichnis, in dem Ihre Anwendung liegt, kopieren. Danach sollten Sie das Programm problemlos starten können. Im Programm können Sie irgendeinen Pfad eingeben, selbst wenn die Datei nicht existiert. Sqlite legt dann nämlich die Datenbankdatei an.



Quelle: Wikipedia