123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- /**
- * @brief
- 数据库连接类
- * @version
- V 1.0.0
- * @author
- * @date
- 创建时间: 2018-04-17\n
- * @note
- 2018-04-17 创建类。\n
- * @warning
- * @bug
- */
- #pragma once
- #include <string>
- #include <mysql.h>
- #include "CDBResultSet.h"
- #include "CDBCommon.h"
- namespace YADB
- {
- class CDBConnect
- {
- private:
- MYSQL * __pConn;//数据库连接
- CDBResultSet __RessultSet;//结果集
- bool __IsTemp;//是否是临时的(如果是临时使用的,归还到连接池中时会自动删除,以保持总体连接数不变)
- MYSQL_STMT *__pstmt;//预处理
- public:
- CDBConnect( bool IsTemp = false );
- ~CDBConnect();
- /**
- * @brief
- 连接数据库函数。
- * @param [in] const _DB_POOL_SETTING_& Setting 数据库连接设置\n
- * @param [out] std::string& Error 错误信息\n
- * @return 返回连接数据库是否成功
- * @return true 成功\n
- * @return false 失败\n
- * @note
- * @warning
- * @bug
- */
- bool Connect( const _DB_CONN_SETTING_& DBSetting, std::string& Error );
- /**
- * @brief
- 关闭连接函数。
- * @param 无\n
- * @return 无\n
- * @note
- * @warning
- * @bug
- */
- void Close();
- /**
- * @brief
- 测试连接函数。
- * @param [out] std::string& Error 错误信息\n
- * @return 返回测试连接是否成功
- * @return 0 连接测试成功\n
- * @return !=0 连接测试失败\n
- * @note
- * @warning
- * @bug
- */
- int ConnctionTest( std::string& Error );
- /**
- * @brief
- 设置自动提交的函数。
- * @param [in] bool Mode 是否是否自动提交\n
- * @param [out] std::string& Error 错误信息\n
- * @return 返回设置自动提交是否成功
- * @return 0 成功\n
- * @return !=0 失败\n
- * @note
- * @warning
- * @bug
- */
- int AutoCommit( bool Mode, std::string& Error );
- /**
- * @brief
- 提交函数。
- * @param [out] std::string& Error 错误信息\n
- * @return 返回提交是否成功
- * @return 0 成功\n
- * @return !=0 失败\n
- * @note
- * @warning
- * @bug
- */
- int Commit( std::string& Error );
- /**
- * @brief
- 回滚函数。
- * @param [out] std::string& Error 错误信息\n
- * @return 返回回滚是否成功
- * @return 0 成功\n
- * @return !=0 失败\n
- * @note
- * @warning
- * @bug
- */
- int RollBack( std::string& Error );
- /**
- * @brief
- 执行SQL语句返回结果集函数。
- * @param [in] const char *szSql SQL语句\n
- * @param [out] std::string& Error 错误信息\n
- * @return 返回结果集
- * @return 0 失败\n
- * @return !=0 成功\n
- * @note
- * @warning
- * @bug
- */
- CDBResultSet* ExecuteQuery( const char *szSql, std::string& Error );
- /**
- * @brief
- 执行SQL语句返回mysql原始结果集函数。
- * @param [in] const char *szSql SQL语句\n
- * @param [out] std::string& Error 错误信息\n
- * @return 返回的mysql原始结果集
- * @return ==0 失败\n
- * @return !=0 成功\n
- * @note
- * @warning
- * @bug
- */
- MYSQL_RES* Query( const char *szSql, std::string& Error );
- /**
- * @brief
- 执行SQL语句函数。
- * @param [in] const char *szSql SQL语句\n
- * @param [out] std::string& Error 错误信息\n
- * @return 返回影响到的记录数量
- * @return -1 失败\n
- * @return >=0 成功\n
- * @note
- * @warning
- * @bug
- */
- my_ulonglong ExecuteSql( const char *szSql, std::string& Error );
- /**
- * @brief
- 执行SQL语句函数。
- * @param [in] const char *szSql SQL语句\n
- * @param [out] std::string& Error 错误信息\n
- * @return 返回影响到的记录数量
- * @return -1 失败\n
- * @return >=0 成功\n
- * @note
- * @warning
- * @bug
- */
- my_ulonglong ExecuteRealSql( const char *szSql, std::string& Error );
- /**
- * @brief
- 获得最后一次错误信息函数。
- * @param 无\n
- * @return 返回最后一次错误
- * @note
- * @warning
- * @bug
- */
- const char* GetLastError();
- /**
- * @brief
- 获得最后一次插入的ID函数。
- * @param [out] std::string& Error 错误信息\n
- * @return 返回最后一次插入的ID
- * @return -1 失败\n
- * @return >=0 成功\n
- * @note
- * @warning
- * @bug
- */
- my_ulonglong GetLastInsertID( std::string& Error );
- /**
- * @brief
- 获得是否是临时的连接函数。
- * @param 无\n
- * @return 返回是否是临时的
- * @note
- * @warning
- * @bug
- */
- bool IsTemp();
- /**
- * @brief
- 准备stmt函数。
- * @param const char *szSql 预处理SQL语句\n
- * @param [out] std::string& Error 错误信息\n
- * @return 返回准备stmt是否成功
- * @return false 失败\n
- * @return true 成功\n
- * @note
- * @warning
- * @bug
- */
- bool Preparestmt( const char *szSql, std::string& Error );
- /**
- * @brief
- 执行stmt函数。
- * @param [in] MYSQL_BIND *stBinds 要执行的BIND\n
- * @param [in] uint64_t *piId 执行后获得的ID\n
- * @param [out] std::string& Error 错误信息\n
- * @return 返回执行stmt成功还是失败
- * @return false 失败\n
- * @return true 成功\n
- * @note
- * @warning
- * @bug
- */
- bool stmtExcute( MYSQL_BIND *stBinds, uint64_t *piId, std::string& Error );
- /**
- * @brief
- 关闭stmt函数。
- * @param 无\n
- * @return 无\n
- * @note
- * @warning
- * @bug
- */
- void stmtClose();
- /**
- * @brief
- 执行SQL语句并获得自动生成的ID函数。
- * @param [in] const char *szSql SQL语句\n
- * @param [out] std::string& Error 错误信息\n
- * @return 返回自动生成的ID
- * @return <1 失败\n
- * @return >=1 成功\n
- * @note
- * @warning
- * @bug
- */
- my_ulonglong ExecuteSqlID( const char *szSql, std::string& Error );
- };
- }
|