init
This commit is contained in:
		
							
								
								
									
										173
									
								
								Gateway/srvlib/include/db/sql_connection.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										173
									
								
								Gateway/srvlib/include/db/sql_connection.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,173 @@ | ||||
| #ifndef _SQL_H_ | ||||
| #define	_SQL_H_ | ||||
|  | ||||
| #ifdef _MSC_VER | ||||
| #undef bool //config-win.h<>л<EFBFBD><D0BB><EFBFBD>bool<6F><6C><EFBFBD><EFBFBD>ΪBOOL | ||||
| #endif | ||||
| #include "mysql.h" | ||||
| //#include <windows.h> | ||||
| #include "os_def.h" | ||||
| #include "x_lock.h" | ||||
|  | ||||
| using namespace lock; | ||||
|  | ||||
| class SQLConnection | ||||
| { | ||||
| private: | ||||
| 	static const int BUFF_SIZE = 4096 * 10; | ||||
|  | ||||
| private: | ||||
| 	MYSQL				MySql_; | ||||
| 	MYSQL_RES*			result_set_; | ||||
| 	my_ulonglong		row_num_; | ||||
| 	MYSQL_ROW			rows_; | ||||
| 	MYSQL_FIELD*		fields_; | ||||
| 	my_ulonglong		field_num_; | ||||
| 	my_ulonglong		affect_rows_; | ||||
|  | ||||
| private: | ||||
| 	char				host_[32]; | ||||
| 	int					port_; | ||||
| 	char				user_name_[64]; | ||||
| 	char				pw_[64]; | ||||
| 	char				db_name_[64]; | ||||
| 	size_t				flag_; | ||||
| 	char				buf_[BUFF_SIZE]; | ||||
| 	Mutex				lock_;			//SQL<51><4C>ѯ<EFBFBD><D1AF> | ||||
| 	bool				connected_;			//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ӵı<D3B5>־ | ||||
| 	bool				mult_thread_;		//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>̵߳ı<CCB5>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪTRUE<55><45><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>ѯ<EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD> | ||||
|  | ||||
| 	size_t				err_cnt_;			// ִ<><D6B4>sql<71><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD> | ||||
| 	bool				infile_; | ||||
| 	bool				utf8_; | ||||
| 	bool				log_;				// <20>Ƿ<EFBFBD><C7B7><EFBFBD>¼sql<71><6C><EFBFBD><EFBFBD>־ | ||||
| private: | ||||
| 	void AfterQueryed(int nError, const char* sql); | ||||
| 	void AfterExeced(int nError, const char* sql); | ||||
|  | ||||
| public: | ||||
| 	SQLConnection(); | ||||
| 	~SQLConnection(); | ||||
|  | ||||
| 	inline const char* GetHost() | ||||
| 	{ | ||||
| 		return host_; | ||||
| 	}; | ||||
| 	void SetHost(const char* sServerHost); | ||||
| 	inline int GetPort() | ||||
| 	{ | ||||
| 		return port_; | ||||
| 	}; | ||||
| 	void SetPort(int nServerPort); | ||||
| 	inline const char* GetDbName() | ||||
| 	{ | ||||
| 		return db_name_; | ||||
| 	}; | ||||
| 	void SetDbName(const char* sDataBaseName); | ||||
| 	inline const char* GetUserName() | ||||
| 	{ | ||||
| 		return user_name_; | ||||
| 	}; | ||||
| 	void SetUserName(const char* sUserName); | ||||
| 	inline const char* GetPassWord() | ||||
| 	{ | ||||
| 		return pw_; | ||||
| 	}; | ||||
| 	void SetPassWord(const char* sPassWord); | ||||
| 	inline size_t GetConnectionFlags() | ||||
| 	{ | ||||
| 		return flag_; | ||||
| 	}; | ||||
| 	void SetConnectionFlags(const size_t nFlags); | ||||
| 	inline bool IsMultiThread() | ||||
| 	{ | ||||
| 		return mult_thread_; | ||||
| 	}; | ||||
| 	void SetMultiThread(bool boMultiThread); | ||||
|  | ||||
| 	BOOL Connect(); | ||||
|  | ||||
| 	inline BOOL Connected() | ||||
| 	{ | ||||
| 		return connected_; | ||||
| 	}; | ||||
| 	void Disconnect(); | ||||
|  | ||||
| 	inline MYSQL* GetMySql() | ||||
| 	{ | ||||
| 		return &MySql_; | ||||
| 	} | ||||
| 	//Query<72><79>RealQuery<72><79><EFBFBD><EFBFBD>ִ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD>IJ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| 	//<2F><>ѯ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>ResetQuery<72><79><EFBFBD>ͷŲ<CDB7>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| 	//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯʧ<D1AF><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| 	int Query(const char* sQueryFormat, ...); | ||||
| 	int RealQuery(const char* sQueryText, const size_t nTextLen); | ||||
|  | ||||
| 	//Exec<65><63>RealExec<65><63><EFBFBD><EFBFBD>ִ<EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD>IJ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>delete,update,create,drop,alter<65><72> | ||||
| 	//ִ<>гɹ<D0B3><C9B9><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>ResetQuery<72><79><EFBFBD>ͷŲ<CDB7>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| 	//<2F><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| 	int Exec(const char* sQueryFormat, ...); | ||||
| 	int RealExec(const char* sExecText, const size_t nTextLen); | ||||
|  | ||||
| 	void ResetQuery(); | ||||
|  | ||||
| 	int Ping() | ||||
| 	{ | ||||
| 		return mysql_ping(&MySql_); | ||||
| 	} | ||||
|  | ||||
| 	inline int GetFieldCount() | ||||
| 	{ | ||||
| 		return (int)field_num_; | ||||
| 	} | ||||
| 	inline int GetRowCount() | ||||
| 	{ | ||||
| 		return (int)row_num_; | ||||
| 	} | ||||
| 	inline int GetRowsAffected() | ||||
| 	{ | ||||
| 		return (int)affect_rows_; | ||||
| 	} | ||||
| 	inline MYSQL_ROW CurrentRow() | ||||
| 	{ | ||||
| 		return rows_; | ||||
| 	} | ||||
| 	inline MYSQL_ROW NextRow() | ||||
| 	{ | ||||
| 		if (result_set_) | ||||
| 		{ | ||||
| 			rows_ = mysql_fetch_row(result_set_); | ||||
| 			return rows_; | ||||
| 		} | ||||
|  | ||||
| 		return NULL; | ||||
| 	} | ||||
| 	inline unsigned long* GetFieldsLength() | ||||
| 	{ | ||||
| 		return mysql_fetch_lengths(result_set_); | ||||
| 	} | ||||
|  | ||||
| 	void ClearErrCnt() | ||||
| 	{ | ||||
| 		err_cnt_ = 0; | ||||
| 	} | ||||
| 	size_t GetErrCnt() | ||||
| 	{ | ||||
| 		return err_cnt_; | ||||
| 	} | ||||
|  | ||||
| 	void SetInfileFlag(bool flag) | ||||
| 	{ | ||||
| 		infile_ = flag; | ||||
| 	} | ||||
| 	void SetUtf8(bool flag) | ||||
| 	{ | ||||
| 		utf8_ = flag; | ||||
| 	} | ||||
| 	void SetLog(bool flag) | ||||
| 	{ | ||||
| 		log_ = flag; | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user