acl  3.5.3.0
db_pgsql.hpp
浏览该文件的文档.
1 #pragma once
2 #include "../acl_cpp_define.hpp"
3 #include "../stdlib/string.hpp"
4 #include "../db/db_handle.hpp"
5 
6 #if !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
7 
8 typedef struct pg_conn PGconn;
9 
10 namespace acl {
11 
12 class pgsql_conf;
13 
15 {
16 public:
17  db_pgsql(const pgsql_conf& conf);
18  ~db_pgsql(void);
19 
20  static void load(void);
21 
22  /********************************************************************/
23  /* 以下为基类 db_handle 的虚接口 */
24  /********************************************************************/
25 
26  const char* dbtype(void) const;
27 
28  /**
29  * @override
30  */
31  int get_errno(void) const;
32 
33  /**
34  * @override
35  */
36  const char* get_error(void) const;
37 
38  /**
39  * @override
40  */
41  bool dbopen(const char* charset = NULL);
42 
43  /**
44  * @override
45  */
46  bool is_opened(void) const;
47 
48  /**
49  * @override
50  */
51  bool close(void);
52 
53  /**
54  * @override
55  */
56  bool tbl_exists(const char* tbl_name);
57 
58  /**
59  * @override
60  */
61  bool sql_select(const char* sql, db_rows* result = NULL);
62 
63  /**
64  * @override
65  */
66  bool sql_update(const char* sql);
67 
68  /**
69  * @override
70  */
71  int affect_count(void) const;
72 
73  /**
74  * @override
75  */
76  bool begin_transaction(void);
77 
78  /**
79  * @override
80  */
81  bool commit(void);
82 
83  /**
84  * @override
85  */
86  bool rollback(void);
87 
88 private:
89  char* dbaddr_; // 数据库监听地址
90  char* dbname_; // 数据库名
91  char* dbuser_; // 数据库账号
92  char* dbpass_; // 数据库账号密码
93  string charset_; // 连接数据库采用的字符集
94 
95  int conn_timeout_;
96  int rw_timeout_;
97 
98  PGconn* conn_;
99  int affect_count_;
100 
101  void sane_pgsql_init(const char* dbaddr, const char* dbname,
102  const char* dbuser, const char* dbpass, int conn_timeout,
103  int rw_timeout, const char* charset);
104  void* sane_pgsql_query(const char* sql);
105 };
106 
107 } // namespace acl
108 
109 #endif // !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
struct pg_conn PGconn
Definition: db_pgsql.hpp:8
#define ACL_CPP_API