====== SQLite Wrapperklasse (Rückgabe als String) ======
Die hier vorgestellte Klasse kann verwendet werden, um SQLite in C++ als Datenbankobjekt einzusetzen. Die Klasse stellt dabei die Funktionen zum Einfügen, Ändern, Löschen und Suchen von Datensätzen in eine Datenbank zur Verfügung. Wer es genauer wissen will, der sei hier auf die [[dbs:sqlite:libsqlite3:cppwrapper_simple:ref|Referenz]] zur Klasse verwiesen. Um das ganze kompilieren zu können, muss die libsqlite3.a oder libsqlite3.so zum Programm [[dbs:sqlite:libsqlite3:install|gelinkt]] werden.
* Funktionen der libsqlite3
* Klasse String in C++
* Ausnahmebehandlung in C++
* Container und Iteratoren aus der STL
* Aufbau von Klassen in C++
\\
Headerdatei der Klasse:
#include
#include
#include
#include
#include
\\
Und ein Verwendungsbeispiel:
int main(int argc, char* argv[])
{
// open the database
SQLite db("messages.db");
// create new entry
SQLite::Row input;
input["type" ] = argv[2];
input["host" ] = argv[3];
input["service" ] = argv[4];
input["state" ] = argv[5];
input["duration" ] = argv[6];
input["email" ] = argv[7];
std::cout << "Inserting new notification..." << std::endl;
db.insert("messages", input);
// print out the database
SQLite::Result result = db.query("select * from messages");
for( SQLite::Result::iterator row = result.begin();
row != result.end();
++row )
{
std::cout << "-----------------------------------------------------------"
<< "---------------------" << std::endl;
std::cout << (*row)["id"] << "|"
<< (*row)["type"] << "|"
<< (*row)["host"] << "|"
<< (*row)["service"] << "|"
<< (*row)["state"] << "|"
<< (*row)["duration"]<< "|"
<< (*row)["inserted"]<< "|"
<< (*row)["message_sent"]
<< std::endl;
}
return 0;
}
\\
schema.sql:
DROP TABLE IF EXISTS messages;
CREATE TABLE messages(
id INTEGER PRIMARY KEY AUTOINCREMENT,
inserted INTEGER NOT NULL DEFAULT 0,
message_sent INTEGER NOT NULL DEFAULT 0,
type TEXT,
host TEXT,
service TEXT,
state TEXT,
duration TEXT,
email TEXT
);
\\
Datenbank in der Konsole erstellen:
sqlite3 messages.db < schema.sql