📄 csybasedriver.cpp
字号:
/*=================================================================** 摘 要: 实现 sybase 驱动 sybase 查询结果集 sybase bcp 结果集==================================================================*/#include "stdafx.h"#include "CSybaseDriver.h"#include "CSqlCtlibrary.h"#include "CSybaseQueryResult.h"#include "CSybaseBcpResult.h"#include "comlog.h"//以下为CSYBASEDriver的实现/*================================================================================** 函数名称: CSYBASEDriver::CSYBASEDriver** 主要功能: 构造实现** 入口参数: 无 ** 序号 参数类型 参数名称 作用 说明** ** ** ** 出口参数:无** 修改记录:=================================================================================== */CSYBASEDriver::CSYBASEDriver () //构造函数{ LOG(NULL,0,"调用CSYBASEDriver"); thePrivate = new CSYBASEDriverPrivate (); //构造私有类}CSYBASEDriver::~CSYBASEDriver () //析构函数{ delete thePrivate; //析构私有类 thePrivate = NULL;}/*================================================================================** 函数名称: CSYBASEDriver::open** 主要功能: 打开联接**** 入口参数:** 序号 参数类型 参数名称 作用 说明** 1 string db 数据库** 2 string user 用户名** 3 string password 密码** 4 string host 主机名(对sybase为server名)** 5 string appname 应用名** 6 int port 端口(为了兼容,sybase不用)** 出口参数:** 类型: 作用** bool 成功返回true 否则返回false**** 修改记录=================================================================================== */bool CSYBASEDriver::open (const string & db, const string & user,const string & password, const string & host, const string & appname, int port){ //TRACE("临时调试"); LOG(NULL,0,"执行打开数据库驱动操作"); if (isOpen ()) { LOG(NULL,0,"当前驱动已经打开,将其关闭,重新打开数据库驱动"); close (); } if (thePrivate->syb_con_init () != SYBASE_RETURN_SUCCEED) { setOpen (false); //置打开未为false setOpenError (true); //置错误位为true ERRLOG(NULL,0,"初始化联接失败"); return false; } else { LOG(NULL,0,"数据库驱动联接初始化成功了,可以继续进行数据库驱动打开操作"); } LOG(NULL,0,"数据库驱动联结打开......"); int nReturn = thePrivate->syb_connect (user.c_str (), password.c_str (),\ host.c_str (), db.c_str (), appname.c_str ()); //调用私有类的syb_connect函数实现联接 if (nReturn == SYBASE_RETURN_FAIL) { setOpen (false); //置打开位为false setOpenError (true); //置错误位为true ERRLOG(NULL,0,"数据库驱动联接失败"); return false; } #if 0 nReturn = thePrivate->syb_use_db ((char *) db.c_str ()); if (nReturn == SYBASE_RETURN_FAIL) { setOpen (false); setOpenError (true); return false; } #endif LOG(NULL,0,"数据库驱动联接成功了,可以继续数据库操作"); setOpen (true); //置打开位为true setOpenError (false); //置错误位为false return true;}/*================================================================================** 函数名称: CSYBASEDriver::close** 主要功能: 关闭联接**** 入口参数:无** 序号 参数类型 参数名称 作用 说明**** 出口参数:无** 类型: 作用** **** 修改记录=================================================================================== */voidCSYBASEDriver::close (){ thePrivate->syb_con_cleanup (); //调用私有类的syb_con_cleanup清除联接 setOpen (false); //置打开位为false setOpenError (false); //置错误位为false}/*================================================================================** 函数名称: CSYBASEDriver::useDb** 主要功能: 应用db数据库**** 入口参数:** 序号 参数类型 参数名称 作用 说明** 1 string db 数据库名** ** 出口参数:** 类型: 作用** bool 成功返回true 否则返回false**** 修改记录=================================================================================== */boolCSYBASEDriver::useDb (const string & db) const{ int nResult = thePrivate->syb_use_db ((char *) db.c_str ()); //调用私有类的useDb函数 if (nResult == SYBASE_RETURN_SUCCEED) //成功返回true { return true; } else //失败返回false { return false; }}CSqlQuery CSYBASEDriver::createQuery () const{ LOG(NULL,0,"以当前驱动为参数,构造查询结果集,返回基于此结果集的查询处理类"); return CSqlQuery (new CSYBASEResult (this));}CSqlBcp CSYBASEDriver::createBcp () const{ TRACE("CSqlBcp CSYBASEDriver::createBcp (....) "); LOG(NULL,0,"以当前驱动为参数,构造bcp结果集,返回基于此驱动相关结果集的bcp处理类"); return CSqlBcp (new CSYBASEBcpResult (this));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -