00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KompexSQLiteDatabase_H
00020 #define KompexSQLiteDatabase_H
00021
00022 #include <string>
00023 #include "sqlite3.h"
00024 #include "KompexSQLitePrerequisites.h"
00025
00026 namespace Kompex
00027 {
00028 class _SQLiteWrapperExport SQLiteDatabase
00029 {
00030 public:
00033 SQLiteDatabase();
00034
00054 SQLiteDatabase(const char *filename, int flags, const char *zVfs);
00055
00075 SQLiteDatabase(const std::string &filename, int flags, const char *zVfs);
00076
00080 SQLiteDatabase(const wchar_t *filename);
00081
00083 virtual ~SQLiteDatabase();
00084
00104 void Open(const char *filename, int flags, const char *zVfs);
00105
00125 void Open(const std::string &filename, int flags, const char *zVfs);
00126
00130 void Open(const wchar_t *filename);
00131
00133 void Close();
00134
00136 sqlite3 *GetDatabaseHandle() const {return mDatabaseHandle;}
00138 inline int GetLibVersionNumber() const {return sqlite3_libversion_number();}
00141 int GetDatabaseChanges() const {return sqlite3_changes(mDatabaseHandle);}
00147 int GetTotalDatabaseChanges() const {return sqlite3_total_changes(mDatabaseHandle);}
00151 void InterruptDatabaseOperation() const {sqlite3_interrupt(mDatabaseHandle);}
00155 int GetAutoCommit() const {return sqlite3_get_autocommit(mDatabaseHandle);}
00156
00160 inline void ActivateTracing() const {sqlite3_trace(mDatabaseHandle, &Kompex::SQLiteDatabase::TraceOutput, 0);}
00166 inline void ActivateProfiling() const {sqlite3_profile(mDatabaseHandle, &Kompex::SQLiteDatabase::ProfileOutput, 0);}
00167
00176 inline void SetSoftHeapLimit(int heapLimit) const {sqlite3_soft_heap_limit(heapLimit);}
00177
00183 inline int ReleaseMemory(int bytesOfMemory) const {return sqlite3_release_memory(bytesOfMemory);}
00184
00185 protected:
00187 static void TraceOutput(void *ptr, const char *sql);
00189 static void ProfileOutput(void* ptr, const char* sql, sqlite3_uint64 time);
00190
00191 private:
00193 struct sqlite3 *mDatabaseHandle;
00194 };
00195
00196 };
00197
00198 #endif // KompexSQLiteDatabase_H