QDb.hh
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00019 #ifndef _QDB_HH_
00020 #define _QDB_HH_
00021
00022 #include <string>
00023 #include <vector>
00024 #include <map>
00025
00026 #include "QCuore.hh"
00027 #include "QVdt.hh"
00028
00029
00030
00031 #include "libpq-fe.h"
00032
00033
00034 class QDb {
00035 public:
00036
00037 virtual ~QDb();
00038
00039 typedef std::vector<QVdt> column;
00040 typedef std::map<std::string, column> QDbTable;
00041
00045 double DoQueryDouble(const std::string& Query);
00049 int DoQueryInt(const std::string& Query);
00053 bool DoQueryBool(const std::string& Query);
00057 std::string DoQueryString(const std::string& Query);
00061 std::vector<double>& DoQueryVectorDouble( const std::string& Query);
00062
00063
00076 const QDbTable DoQuery( const std::string& Query, int MaxLines=1000);
00080 bool DoSQLNoReturn(const std::string& query);
00085 int DoExec(const std::string& Query);
00086
00087
00088 protected:
00089
00098 QDb(const std::string& ip, const std::string& port, const std::string& usr,
00099 const std::string& pwd, const std::string& db);
00100
00104 bool Connect();
00108 bool DisConnect();
00109
00114 inline bool isConnected() const { return fConnected;}
00115
00119 const QDbTable DoQuery(const std::string& Table, const std::string& Where,
00120 const std::string& Fields, const std::string& Order,
00121 int MaxLines);
00122
00123 private:
00124
00125 PGconn *fConnection;
00126 bool fConnected;
00127
00128 std::string fServerIpAddress;
00129 std::string fServerIpPort;
00130 std::string fUserName;
00131 std::string fPasswd;
00132 std::string fDataBase;
00133
00134 inline const char* Server() const { return fServerIpAddress.c_str(); }
00135 inline const char* Port() const { return fServerIpPort.c_str(); }
00136 inline const char* User() const { return fUserName.c_str(); }
00137 inline const char* Passwd() const { return fPasswd.c_str(); }
00138
00139 protected:
00140 inline const char* DataBase() const { return fDataBase.c_str(); }
00141
00142 };
00143
00147 std::string TimeToTimestamp( unsigned int t);
00148
00149 #endif // _QDB_HH_