CDBCommon.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /**
  2. * @brief
  3. 数据库公共头文件
  4. * @version
  5. V 1.0.0
  6. * @author
  7. 王益俊
  8. * @date
  9. 创建时间: 2018-04-19\n
  10. * @note
  11. 2018-04-19 初次创建。\n
  12. * @warning
  13. * @bug
  14. */
  15. #ifndef DB_COMMON_H
  16. #define DB_COMMON_H
  17. #include <mysql.h>
  18. namespace YADB
  19. {
  20. //----------------------------------------------------------------------------
  21. // 数据库错误定义
  22. //----------------------------------------------------------------------------
  23. const int DB_ERR_NO_ERROR = 0;//无错误
  24. const int DB_ERR_NOT_CONNECT_DB = -1;//未连接数据库
  25. const int DB_ERR_EXCUTE_QUERY = -1;//执行查询失败
  26. const int DB_ERR_QUERY_RES_NOT_INITED = -1;//查询结果集还未初始化
  27. //----------------------------------------------------------------------------
  28. // 其它定义
  29. //----------------------------------------------------------------------------
  30. const int MAX_ASYNC_EXEC_FAILED_COUNT = 3;//最大异步执行失败次数
  31. const int MAX_ASYNC_QUEQUE_CAPACITY = 1<<20;//异步执行队列最大容量
  32. /**
  33. * @brief
  34. 数据库连接数枚举
  35. */
  36. enum _DB_CONNECT_COUNT_
  37. {
  38. DCC_MIN_COUNT = 1,//最小连接数
  39. DCC_MAX_COUNT = 60,//最大连接数
  40. };
  41. /**
  42. * @brief
  43. 数据库连接设置结构体
  44. */
  45. struct _DB_CONN_SETTING_
  46. {
  47. unsigned int Port;//端口
  48. int TimeOut;//连接数据库超时(单位:秒)
  49. std::string Host;//数据库主机地址
  50. std::string User;//用户名
  51. std::string PWD;//密码
  52. std::string DBName;//数据库名
  53. std::string CharSet;//字符集
  54. std::string stmtSQL;//预处理SQL
  55. _DB_CONN_SETTING_()
  56. {
  57. Port = 3306;
  58. TimeOut = 0;
  59. }
  60. };
  61. /**
  62. * @brief
  63. 数据库连接池设置结构体
  64. */
  65. struct _DB_POOL_SETTING_ : public _DB_CONN_SETTING_
  66. {
  67. int PoolSize;//连接池大小
  68. _DB_POOL_SETTING_()
  69. {
  70. PoolSize = 0;
  71. }
  72. };
  73. /**
  74. * @brief
  75. 异步执行结构体
  76. */
  77. struct _ASYNC_SQL_
  78. {
  79. int FailedCount;//执行失败次数
  80. std::string SQL; //SQ语句
  81. _ASYNC_SQL_(std::string&&sql)
  82. :SQL(sql)
  83. {
  84. FailedCount = 0;
  85. }
  86. ~_ASYNC_SQL_()
  87. {
  88. }
  89. };
  90. }
  91. #endif