⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 routerconnection.h

📁 适合于Unix/Linux下的一个持久数据库连接池
💻 H
字号:
// Copyright (c) 2000-2001  David Muse// See the file COPYING for more information#ifndef ROUTERCONNECTION_H#define ROUTERCONNECTION_H#define FETCH_AT_ONCE	10#include <sqlrconnection.h>#include <sqlrelay/sqlrclient.h>#include <rudiments/regularexpression.h>struct outputbindvar {	const char	*variable;	union {		char		*stringvalue;		int64_t		*intvalue;		double		*doublevalue;	} value;	uint16_t	valuesize;	bindtype	type;	int16_t		*isnull;};struct cursorbindvar {	const char	*variable;	sqlrcursor_svr	*cursor;};class routerconnection;class routercursor : public sqlrcursor_svr {	friend class routerconnection;	private:				routercursor(sqlrconnection_svr *conn);				~routercursor();		bool		prepareQuery(const char *query,						uint32_t length);		bool		supportsNativeBinds();		bool		begin(const char *query, uint32_t length);		bool		inputBindString(const char *variable, 						uint16_t variablesize,						const char *value, 						uint16_t valuesize,						int16_t *isnull);		bool		inputBindInteger(const char *variable, 						uint16_t variablesize,						int64_t *value);		bool		inputBindDouble(const char *variable, 						uint16_t variablesize,						double *value,						uint32_t precision,						uint32_t scale);		bool		inputBindBlob(const char *variable, 						uint16_t variablesize,						const char *value, 						uint32_t valuesize,						int16_t *isnull);		bool		inputBindClob(const char *variable, 						uint16_t variablesize,						const char *value, 						uint32_t valuesize,						int16_t *isnull);		bool		outputBindString(const char *variable, 						uint16_t variablesize,						char *value,						uint16_t valuesize,						int16_t *isnull);		bool		outputBindInteger(const char *variable, 						uint16_t variablesize,						int64_t *value,						int16_t *isnull);		bool		outputBindDouble(const char *variable, 						uint16_t variablesize,						double *value,						uint32_t *precision,						uint32_t *scale,						int16_t *isnull);		bool		outputBindBlob(const char *variable, 						uint16_t variablesize,						uint16_t index,						int16_t *isnull);		bool		outputBindClob(const char *variable, 						uint16_t variablesize,						uint16_t index,						int16_t *isnull);		bool		outputBindCursor(const char *variable,						uint16_t variablesize,						sqlrcursor_svr *cursor);		void		returnOutputBindBlob(uint16_t index);		void		returnOutputBindClob(uint16_t index);		bool		executeQuery(const char *query,						uint32_t length,						bool execute);		void		checkForTempTable(const char *query,							uint32_t length);		const char	*errorMessage(bool *liveconnection);		bool		knowsRowCount();		uint64_t	rowCount();		bool		knowsAffectedRows();		uint64_t	affectedRows();		uint32_t	colCount();		const char * const * columnNames();		uint16_t	columnTypeFormat();		void		returnColumnInfo();		bool		noRowsToReturn();		bool		skipRow();		bool		fetchRow();		void		returnRow();		void		cleanUpData(bool freeresult, bool freebinds);		routerconnection	*routerconn;		sqlrconnection	*con;		sqlrcursor	*cur;		bool		isbindcur;		uint16_t	curindex;		sqlrcursor	**curs;		uint64_t	nextrow;		bool		beginquery;		outputbindvar	obv[MAXVAR];		uint16_t	obcount;		cursorbindvar	cbv[MAXVAR];		uint16_t	cbcount;		regularexpression	createoratemp;		regularexpression	preserverows;};class routerconnection : public sqlrconnection_svr {	friend class routercursor;	public:			routerconnection();			~routerconnection();	private:		bool		supportsAuthOnDatabase();		uint16_t	getNumberOfConnectStringVars();		void		handleConnectString();		bool		logIn(bool printerrors);		sqlrcursor_svr	*initCursor();		void		deleteCursor(sqlrcursor_svr *curs);		void		logOut();		bool		autoCommitOn();		bool		autoCommitOff();		bool		commit();		bool		rollback();		const char	*identify();		const char	*dbVersion();		bool		ping();		void		endSession();		void	autoCommitOnFailed(uint16_t index);		void	autoCommitOffFailed(uint16_t index);		void	commitFailed(uint16_t index);		void	rollbackFailed(uint16_t index);		void	beginQueryFailed(uint16_t index);		sqlrconnection	**cons;		const char	**beginquery;		bool		anymustbegin;		uint16_t	concount;		sqlrconfigfile	*cfgfile;		bool		justloggedin;		int16_t		nullbindvalue;		int16_t		nonnullbindvalue;		regularexpression	beginregex;		regularexpression	beginendregex;		const char	*error;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -