cm_conn.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #ifndef DB_CONN_H
  2. #define DB_CONN_H
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <stdint.h>
  7. #define list_add my_list_add
  8. #include "mysql.h"
  9. #undef list_add
  10. struct DBHost
  11. {
  12. char Host[110];
  13. int Port;
  14. char User[64];
  15. char Password[128];
  16. char DbName[128];
  17. unsigned int ConnTimeout;
  18. unsigned int ReadTimeout;
  19. char OptionFile[256];
  20. };
  21. class MysqlConn
  22. {
  23. private:
  24. DBHost DBConfig;
  25. int Connected;
  26. MYSQL Mysql;
  27. char achErr[400];
  28. int dberr;
  29. int useMatched;
  30. public:
  31. MYSQL_RES *Res;
  32. MYSQL_ROW Row;
  33. MYSQL_FIELD *Fields;
  34. int row_num;
  35. int field_num;
  36. int NeedFree;
  37. protected:
  38. int Connect(const char* DBName);
  39. public:
  40. MysqlConn();
  41. MysqlConn(const DBHost* Host);
  42. static int ClientVersion(void);
  43. void Config(const DBHost* Host);
  44. void UseMatchedRows(void);
  45. const char* GetErrMsg();
  46. int GetErrNo();
  47. int GetRawErrNo();
  48. int Open();
  49. int Open(const char* DBName);
  50. int Close();
  51. int Ping();
  52. int Query(const char* SQL); // connect db if needed
  53. int Query(const char* DBName, const char* SQL); // connect db if needed
  54. int TransactionQuery(const char* SQL);
  55. int BeginWork();
  56. int Commit();
  57. int RollBack();
  58. int64_t AffectedRows();
  59. const char *ResultInfo();
  60. uint64_t InsertID();
  61. uint32_t EscapeString(char To[], const char* From);
  62. uint32_t EscapeString(char To[], const char* From, int Len);
  63. int64_t GetVariable(const char *v);
  64. int UseResult();
  65. int FetchRow();
  66. int FreeResult();
  67. int FetchFields();
  68. inline unsigned long* getLengths (void)
  69. {
  70. return mysql_fetch_lengths (Res);
  71. }
  72. char* get_db_name() { return DBConfig.DbName;}
  73. ~MysqlConn();
  74. };
  75. #endif