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

📄 csqlctlibrary.h

📁 很好用的数据库连接组件
💻 H
字号:
#ifndef CSQL_CTLIBRARY_H#define CSQL_CTLIBRARY_H#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctpublic.h>#include <bkpublic.h>#include "CSqlDriver.h" #include "CSqlResult.h"#include "CSqlBcpResult.h"#include "sybase_common.h"#include "sybase_msg.h"class CSYBASEDriverPrivate{public:	CSYBASEDriverPrivate ();	//构造函数	~CSYBASEDriverPrivate ();	//析构函数public:	CS_CONTEXT *cs_context;	//类静态 sybase CS_CONTEXT 结构指针,所有联接基于此,整个进程一个	int cs_con_count;	//记录基于cs_context的联接个数,整个进程一个	CS_CONNECTION *i_driver_connection;	//sybase联接结构指针	CS_RETCODE i_return_code;		//记录上一ct函数的执行结果	char i_username[SYBASE_MAXSTRINGLEN];	//记录用户名	char i_password[SYBASE_MAXSTRINGLEN];	//记录密码	char i_server[SYBASE_MAXSTRINGLEN];	//记录server名	char i_dbname[SYBASE_MAXSTRINGLEN];	//记录数据库名	char i_appname[SYBASE_MAXSTRINGLEN];	//记录应用名public:	int syb_ctx_init ();		//初始化上下文结构 *cs_context	//以相应的参数连接服务器	int syb_connect (const char *username,	//用户名		   const char *password,	//密码		   const char *server,	//服务器名		   const char *dbname = NULL,	//数据库名		   const char *appname = NULL	//应用名		);	int syb_ctx_cleanup ();	//清除上下文结构*cs_context	int syb_con_init ();		//初始化联接结构*i_driver_connection	int syb_con_cleanup ();	//清除联接结构*i_driver_connection	int syb_use_db (const char *dbname);	//应用dbname数据库};class CSYBASEResultPrivate:public CSYBASEDriverPrivate{public:	CSYBASEResultPrivate ();	~CSYBASEResultPrivate ();public:	int i_nRows;			//保存行数	int i_nColumns;		//列数	char (*i_buf)[SYBASE_MAX_COLUMN_LENGTH];	//如果输出缓冲在外部,此指针指向外部缓冲	int i_row_count_read;		//已经读到的行数	char i_cRowBuf[SYBASE_MAX_TABLE_COLUMNS + 1][SYBASE_MAX_COLUMN_LENGTH ];	//内部输出缓冲	CS_DATAFMT i_RowDesc[SYBASE_MAX_TABLE_COLUMNS + 1];	//结果集的列描述数组(用CS_DATAFMT结构描述)	CS_COMMAND *i_cs_cmd;		//sybase命令结构(CS_COMMAND)指针	CS_RETCODE i_result_ret_code;	//上一次结果集的返回代码	CS_INT i_result_res_type;	//上一次结果集的结果类型public:	int syb_cmd_init ();		//初始化命令结构	int syb_cmd_cleanup ();		//清除命令结构	int syb_execute_cmd (char *cmdbuf);	//执行命令	int syb_end_cmd (int nAllorCurr=SYBASE_CANCEL_ALL,int nConorCmd = SYBASE_CANCEL_COMMAND);	//命令的结束处理	int syb_get_result ();		//得到结果集	int syb_get_describe ();	//得到结果集的描述	int syb_bind_data (char (*result_buf)[SYBASE_MAX_COLUMN_LENGTH] = NULL, int nColNum = 0);	//将结果集绑定到输出缓冲上	int syb_fetch_data ();		//索取一行数据	bool res_cmd_succeed ();	//命令是否成功	bool res_cmd_have_result ();	//命令是否返回结果	bool res_cmd_done ();		//命令是否结束	bool res_cmd_fail ();		//命令是否失败	bool res_succeed ();		//结果集是否成功	bool res_end ();		//结果集是否结束};class CSYBASEBcpResultPrivate:public CSYBASEDriverPrivate{public:	CSYBASEBcpResultPrivate ();	~CSYBASEBcpResultPrivate ();public:	//bool i_buf_is_extern;		//输出缓冲是否在外部(true在外部、false在内部)	char (*i_buf)[SYBASE_MAX_COLUMN_LENGTH];	//如果输出缓冲在外部,此指针指向外部缓冲	int i_nRows;					//保存行数	int i_nColumns;					//列数	long i_row_count_read;	//已经读到的行数	char i_cRowBuf[SYBASE_MAX_TABLE_COLUMNS+1][SYBASE_MAX_COLUMN_LENGTH];	//内部输出缓冲	//CS_DATAFMT datafmt;	CS_DATAFMT datafmt[SYBASE_MAX_TABLE_COLUMNS+1];	//列描述结构数组	CS_INT i_colLen[SYBASE_MAX_TABLE_COLUMNS + 1];	CS_DATAFMT i_RowDesc[SYBASE_MAX_TABLE_COLUMNS + 1];//结果集的列描述数组(用CS_DATAFMT结构描述)	CS_BLKDESC *i_blk_desc;				//bcp的内部描述指针(所有操作基于此结构)	CSYBASEResultPrivate *i_cmd;	//查询结果集私有类的指针,用于在bcp内部执行命令public:	int syb_get_table_columns (const char *table_name);	//得到表的列数	int syb_blk_origin ();	//进行bcp的初始准备	int syb_blk_init (const char *table_name, int direction);	//针对table_name进行bcp的初始化	int syb_blk_get_describe ();	//得到bcp结果集的描述	int syb_blk_bind_data (char (*result_buf)[SYBASE_MAX_COLUMN_LENGTH] = NULL, int nBufNum = 0);	//将输出绑定到结果集缓冲	int syb_blk_mybind_data ();//	int syb_blk_deal_data ();	//进行一次bcp处理	int syb_blk_done (int nOpt);	//作提交处理(部分提交或全部提交)};#endif

⌨️ 快捷键说明

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