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

📄 csqlconnectionimpl.h

📁 很好用的数据库连接组件
💻 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 + -