Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __cmtkSQLite_h_included_
00032 #define __cmtkSQLite_h_included_
00033
00034 #include <cmtkconfig.h>
00035
00036 #include <sqlite3.h>
00037
00038 #include <string>
00039 #include <vector>
00040
00041 #include <System/cmtkException.h>
00042
00043 namespace
00044 cmtk
00045 {
00046
00049
00052 class SQLite
00053 {
00054 public:
00056 typedef SQLite Self;
00057
00059 typedef sqlite3_uint64 PrimaryKeyType;
00060
00062 static const PrimaryKeyType NOTFOUND = static_cast<PrimaryKeyType>( -1 );
00063
00065 typedef std::vector< std::vector< std::string > > TableType;
00066
00068 class Exception :
00070 public cmtk::Exception
00071 {
00072 public:
00074 Exception( const std::string& error ) : cmtk::Exception( error ) {};
00075 };
00076
00078 SQLite( const std::string& dbPath,
00079 const bool readOnly = false );
00080
00082 virtual ~SQLite();
00083
00085 bool Good() const
00086 {
00087 return this->m_Good;
00088 }
00089
00091 void Exec( const std::string& sql );
00092
00094 void Query( const std::string& sql, Self::TableType& table ) const;
00095
00097 bool TableExists( const std::string& tableName ) const;
00098
00100 void DebugModeOn() { this->m_DebugMode = true; }
00101
00103 void DebugModeOff() { this->m_DebugMode = false; }
00104
00105 protected:
00107 mutable sqlite3 *m_DB;
00108
00110 bool m_Good;
00111
00113 bool m_DebugMode;
00114 };
00115
00117
00118 }
00119
00120 #endif // #ifndef __cmtkSQLite_h_included_