00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _SWORD_DB_DBCONNECTION_
00020 #define _SWORD_DB_DBCONNECTION_
00021
00022 #include "sword/base.SmartPtr.h"
00023
00024 namespace sword {
00025
00026 class DbConnection;
00027 class DbQuery;
00028
00029 typedef SmartPtr<DbConnection> PDbConnection;
00030 typedef SmartPtr<DbQuery> PDbQuery;
00031
00032 class SWORDDECL DbException : public Exception {};
00033
00034
00035 class SWORDDECL DbConnection {
00036 public:
00037 virtual ~DbConnection() {}
00038
00039
00040 static PDbConnection factory(const std::string &driver, const std::string& name);
00041
00042
00043 virtual void open(const std::string& parameters) = 0;
00044 virtual void close() = 0;
00045
00046
00047 virtual PDbQuery query() = 0;
00048
00049
00050 virtual void begin() = 0;
00051 virtual void commit() = 0;
00052 virtual void rollback() = 0;
00053
00054
00055 std::string name() const { return name_; }
00056
00057 protected:
00058
00059 DbConnection(const std::string& name) : name_(name) {}
00060 std::string name_;
00061 };
00062
00063 }
00064
00065 #endif // _SWORD_DB_DBCONNECTION_