📄 csqlconnection.cpp
字号:
#include "CSqlConnection.h" #include "comlog.h"const char*const CSqlConnection::defaultConnection="private_sql_default_connection" ;// 缺省连接名CSqlConnection *CSqlConnection::addConnection(const string&type,const string&connectionName){ LOG2(NULL,0,"调用CSqlConnection类方法addConnection(...)增加连接[%s],连接类型为[%s]",\ connectionName.c_str(),type.c_str()); return CSqlConnectionManager::addConnection(new CSqlConnection(type,connectionName),connectionName);}/* 取得连接。*/CSqlConnection *CSqlConnection::connection(const string&connectionName,bool open){ return CSqlConnectionManager::connection(connectionName,open);}void CSqlConnection::removeConnection(const string&connectionName){ CSqlConnectionManager::removeConnection(connectionName);}/*! Returns TRUE if the list of database connections contains \a connectionName; otherwise returns FALSE.*/bool CSqlConnection::contains(const string&connectionName){ LOG1(NULL,0,"调用CSqlConnection类方法contains(...)判断连接[%s]是否存在",connectionName.c_str()); return CSqlConnectionManager::contains(connectionName);}CSqlConnection::CSqlConnection(const string&driver,const string&name){ LOG2(NULL,0,"调用CSqlConnection::CSqlConnection(%s,%s)",driver.c_str(),name.c_str()); init(driver,name);}void CSqlConnection::init(const string&type,const string&name){ LOG2(NULL,0,"调用CSqlConnection::init(%s,%s)",type.c_str(),name.c_str()); d=new CSqlConnectionPrivate(); d->drvName=type ; if(!d->driver) { #ifdef SQL_SYBASE LOG(NULL,0,"创建SYBASE驱动"); d->driver=new CSYBASEDriver(); #endif #ifdef SQL_ORACLE LOG(NULL,0,"创建ORACLE驱动"); d->driver=new CORACLEDriver(); #endif } if(!d->driver) { d->driver=new CNullDriver(); // give use a warn messge indicate the dirvier no fount !! d->driver->setLastError(CSqlError("Driver not loaded","Driver not loaded")); }}/*! Destroys the object and frees any allocated resources.*/CSqlConnection ::~CSqlConnection(){ delete d->driver ; d->driver=NULL ; delete d ; d=NULL ;}/*!执行sql语句*/CSqlQuery CSqlConnection::exec(const string&query)const { CSqlQuery r=d->driver->createQuery(); if(query!="") { r.exec(query); d->driver->setLastError(r.lastError()); } return r ;}CSqlBcp CSqlConnection::bcp(const string&table)const { CSqlBcp r=d->driver->createBcp(); if(table!="") { r.begin(table); d->driver->setLastError(r.lastError()); } return r ;}bool CSqlConnection::useDb(const string&db)const { return d->driver->useDb(db);}/*!打开数据库连接*/bool CSqlConnection::open(){ //TRACE("临时调试"); bool ret=d->driver->open(d->dbname,d->uname,d->pword,d->hname,d->appName,d->port); return ret ;}/*!用指定的用户名密码打开数据库*/bool CSqlConnection::open(const string&user,const string&password){ setUserName(user); setPassword(password); return open();}/*! Closes the database connection, freeing any resources acquired.*/void CSqlConnection::close(){ d->driver->close();}/*!数据库是否打开了*/bool CSqlConnection::isOpen()const { return d->driver->isOpen();}/*!数据库打开是否失败*/bool CSqlConnection::isOpenError()const { return d->driver->isOpenError();}/*!数据库名*/void CSqlConnection::setDatabaseName(const string&name){ d->dbname=name ;}/*!设置用户名*/void CSqlConnection::setUserName(const string&name){ d->uname=name ;}/*!设置密码*/void CSqlConnection::setPassword(const string&password){ d->pword=password ;}/*!主机名或server名*/void CSqlConnection::setHostName(const string&host){ d->hname=host ;}/*!设置端口*/void CSqlConnection::setPort(int p){ d->port=p ;}string CSqlConnection::databaseName()const { return d->dbname ;}string CSqlConnection::userName()const { return d->uname ;}string CSqlConnection::password()const { return d->pword ;}string CSqlConnection::hostName()const { return d->hname ;}/*! Returns the name of the driver used by the database connection.*/string CSqlConnection::driverName()const { return d->drvName ;}int CSqlConnection::port()const { return d->port ;}void CSqlConnection::setAppName(const string&app){ d->appName=app ;}string CSqlConnection::appName()const { return d->appName ;}/*! Returns the database driver used to access the database connection.*/CSqlDriver *CSqlConnection::driver()const { //TRACE("临时调试"); return d->driver ;}/*! Returns information about the last error that occurred on the database. See CSqlError for more information.*/CSqlError CSqlConnection::lastError()const { return d->driver->lastError();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -