00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _TMWSERV_DATA_PROVIDER_H_
00025 #define _TMWSERV_DATA_PROVIDER_H_
00026
00027
00028 #include <string>
00029
00030 #include "recordset.h"
00031
00032 namespace dal
00033 {
00034
00038 typedef enum {
00039 DB_BKEND_MYSQL,
00040 DB_BKEND_SQLITE,
00041 DB_BKEND_POSTGRESQL
00042 } DbBackends;
00043
00044
00058 class DataProvider
00059 {
00060 public:
00064 DataProvider(void)
00065 throw();
00066
00067
00071 virtual
00072 ~DataProvider(void)
00073 throw();
00074
00075
00081 bool
00082 isConnected(void) const
00083 throw();
00084
00085
00091 virtual DbBackends
00092 getDbBackend(void) const
00093 throw() = 0;
00094
00095
00105 virtual void
00106 connect(const std::string& dbName,
00107 const std::string& userName,
00108 const std::string& password) = 0;
00109
00110
00122 virtual const RecordSet&
00123 execSql(const std::string& sql,
00124 const bool refresh = false) = 0;
00125
00126
00132 virtual void
00133 disconnect(void) = 0;
00134
00138 std::string
00139 getDbName(void);
00140
00141
00142
00143 protected:
00144 std::string mDbName;
00145 bool mIsConnected;
00146 std::string mSql;
00147 RecordSet mRecordSet;
00148 };
00149
00150
00151 }
00152
00153 #endif // _TMWSERV_DATA_PROVIDER_H_