📄 csqlconnectionimpl.h
字号:
/*=================================================================** 摘 要: 用于管理数据库连接,×× 对连接进行增加、删除、检索操作 ==================================================================*/#ifndef CSQL_CONNECTION_IMPL_H#define CSQL_CONNECTION_IMPL_H#include "stdafx.h" #include "CSqlDriver.h" #include "CSqlQuery.h" #include "CSqlBcp.h" #include<stdlib.h>#include "CSqlResult.h" #include "CSqlBcpResult.h" # if defined(_REENTRANT)#include "mymutex.h"#include "mymutexpool_p.h"# endif#include "csql.h"#ifdef SQL_SYBASE#include "../src/sybase/CSybaseDriver.h" #include "../src/sybase/CSybaseQueryResult.h" #include "../src/sybase/CSybaseBcpResult.h" #endif#ifdef SQL_ORACLE#include "../src/oracle/CSqlOciLibrary.h" #endifclass CSqlConnectionManager {public : CSqlConnectionManager(); ~CSqlConnectionManager(); static CSqlConnection*connection(const string&name,bool open); static CSqlConnection*addConnection(CSqlConnection*db,const string&name); static void removeConnection(const string&name); static bool contains(const string&name);protected : static CSqlConnectionManager*instance(); //取得实例句柄(单体) map<string,CSqlConnection*>dbMap ;private : static CSqlConnectionManager *s_singleManger ; //(单体指针)};class CNullResult :public CSqlResult // 空的结果集,用于无效的连接{public : CNullResult(const CSqlDriver*d): CSqlResult(d) { } ~CNullResult() { }protected : CVariant data(int) { return CVariant(); } int intData(int) { return-1 ; } char*stringData(int) { return NULL ; } bool reset(const string&sqlquery) { return FALSE ; } bool multi_reset(const string&sqlquery) { return FALSE ; } bool fetch() { return FALSE ; } bool cancel(bool bAll=true) { return FALSE ; } bool isNull(int) { return FALSE ; } int size() { return 0 ; } int numRowsAffected() { return 0 ; }};/* 空的bcp结果,用于无效的连接*/class CNullBcpResult :public CSqlBcpResult { public : CNullBcpResult(const CSqlDriver*d): CSqlBcpResult(d) { } ~CNullBcpResult() { } protected : int fCheckTable(const string&tableName) { return 0 ; } ; bool fCheckPoint() { return false ; } ; bool fBind(char buf[][256],int len) { return false ; } ; bool fSend() { return false ; } ; bool fStart(const string&tableName) { return false ; } ; bool fEnd(bool all) { return false ; } ;};/* 空的驱动,会产生空的结果集和空的bcp*/class CNullDriver :public CSqlDriver { public : CNullDriver(): CSqlDriver() { } ~CNullDriver() { } bool open(const string&,const string&,const string&,const string&,const string&,int) { return FALSE ; } void close() { } CSqlQuery createQuery()const { return CSqlQuery(new CNullResult(this)); } CSqlBcp createBcp()const { return CSqlBcp(new CNullBcpResult(this)); }};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -