000
18.03.2008, 13:20 Uhr
~Betagan
Gast
|
Hallo,
Ich versuche zur Zeit eine Datenbank-Klasse zu schreiben, die mir beim erstellen eines neuen Klassenobjektes eine Verbindung zu einer Sqlite3 datenbank öffnet und das handle für spätere queries speichert, um nicht für jeden query die datenbank neu zu öffnen. Ich versuche jetzt aus der Member-funktion "dbOpen" die sqlite3 db zu öffnen und das handle in der klassenvariable dbHandle abzulegen.
| C++: |
class sqliteBackend { sqlite3* dbHandle; public: sqliteBackend(); ~sqliteBackend(); int dbOpen(string db_Path); };
|
| C++: |
int sqliteBackend::dbOpen(string db_Path) { cout << "opening the db..." << endl; if(sqlite3_open(db_Path.c_str(),&dbHandle) != SQLITE_OK) { cout << "Error opening database: " << _dbFile << endl; return 1; } cout << "opened the db!" << endl;
|
die Ausgabe sieht dann so aus:
| Zitat: |
opening the db... Segmentation fault
|
Ich binde die sqlite3.h von sqlite.org ein.
Meine Vermutung ist, das ich bei der Klassendeklaration etwas falsch gemacht hab, bzw. falsch auf die Variable zugreife oder so. Leider konnte ich dem Problem bisher nicht näher kommen. Ich hoffe jmd von euch hat eine Idee woran es liegen könnte. Ich weiß leider nicht, ob es ein problem von sqlite3 ist oder von meinem c++-code 
Gruß, Betagan |