00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _TMWSERV_SQLITE_DATA_PROVIDER_H_
00022 #define _TMWSERV_SQLITE_DATA_PROVIDER_H_
00023
00024 #include <iosfwd>
00025 #include "limits.h"
00026 #include <sqlite3.h>
00027 #include "common/configuration.hpp"
00028
00029
00030
00031
00032 #ifndef sqlite3_int64
00033 typedef sqlite_int64 sqlite3_int64;
00034 #endif
00035
00036
00037 #include "dataprovider.h"
00038
00039 namespace dal
00040 {
00041
00045 class SqLiteDataProvider: public DataProvider
00046 {
00047 public:
00051 SqLiteDataProvider(void)
00052 throw();
00053
00054
00058 ~SqLiteDataProvider(void)
00059 throw();
00060
00061
00067 DbBackends
00068 getDbBackend(void) const
00069 throw();
00070
00071
00077 void connect();
00078
00079
00091 const RecordSet&
00092 execSql(const std::string& sql,
00093 const bool refresh = false);
00094
00095
00101 void
00102 disconnect(void);
00103
00109 void
00110 beginTransaction(void)
00111 throw (std::runtime_error);
00112
00118 void
00119 commitTransaction(void)
00120 throw (std::runtime_error);
00121
00127 void
00128 rollbackTransaction(void)
00129 throw (std::runtime_error);
00130
00137 const unsigned int
00138 getModifiedRows(void) const;
00139
00146 const unsigned int
00147 getLastId(void) const;
00148
00149 private:
00150
00152 static const std::string CFGPARAM_SQLITE_DB;
00154 static const std::string CFGPARAM_SQLITE_DB_DEF;
00155
00162 const bool
00163 inTransaction(void) const;
00164
00165 sqlite3* mDb;
00166 };
00167
00168
00169 }
00170
00171 #endif // _TMWSERV_SQLITE_DATA_PROVIDER_H_