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

📄 ado.h

📁 作者对ADO进行封装并演示了它的使用
💻 H
字号:
/*########################################################################
	【文件名】: 	ado.h
	【名  称】:		ADO 封装类.
	【版  本】:		0.20
	【作  者】:		成真
	【E-mail】:		anyou@sina.com
	 ---------------------------------------------------------
	【创建时间】:		20/1/2003 19:08
	【修改时间】:		09/4/2003
	 ---------------------------------------------------------
	【版本历史】:
		[0.20]  :   封装了 CAdoCommand 类.
			[-15/4/2003-]
			
		[0.11]  :   修正了一些 bug.
					删除 oleinit() 函数, 因为觉得不妥。
					增加了记录集存取函数.
			[-09/4/2003-]

		[0.10]	:	主要包括 CAdoConnection 和 CAdoRecordSet 两个类, 封装了
			对ado的常用的操作方法.
			[-20/1/2003-]
	 ---------------------------------------------------------
	【使用说明】:
		1. 必须在下面指明 msado15.dll 的全路径, 一般在 "C:\Program Files\
		   Common Files\System\ADO\" 目录下.
		2. 在使用本类之前必须要初始化 COM 环境, 可以调用 CoInitialize(NULL)  
		   来初始化, 用 CoUninitialize() 释放;
		3. 在使用记录集对象前必须先调用 CAdoConnection::Open() 连接数据库,
		   连接后可给多个 CAdoRecordSet 对象使用, 用完后须关闭数据库.
		4. 使用记录集执行SQL语句之前, 要使用构建方法或调用 SetAdoConnection() 
		   关联到连接对象.
		5. 在编译过程中不用理会下面的编译警告:
		   warning: unary minus operator applied to unsigned type, result
		   still unsigned
		   如果不想此警告出现,可以在 StdAfx.h 文件中加入这样一行代码以禁止
		   此警告: 	#pragma warning(disable:4146) 
  ########################################################################*/
#if !defined(_ANYOU_COOL_ADO_H)
#define _ANYOU_COOL_ADO_H

#if _MSC_VER > 1000
#pragma once
#endif 
 
// 导入 ado 库 -----------------------------------------------------------
#pragma warning(disable:4146)
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
#pragma warning(default:4146)
using namespace ADODB;  

#include <icrsint.h>
class CAdoConnection;
#include "AdoRecordSet.h"
#include "AdoCommand.h"

// 数值类型转换 -----------------------------------
COleDateTime vartodate(const _variant_t& var);
COleCurrency vartocy(const _variant_t& var);
bool vartobool(const _variant_t& var);
BYTE vartoby(const _variant_t& var);
short vartoi(const _variant_t& var);
long vartol(const _variant_t& var);
double vartof(const _variant_t& var);
CString vartostr(const _variant_t& var);

/*########################################################################
			  ------------------------------------------------
						    CAdoConnection class
			  ------------------------------------------------
  ########################################################################*/
class CAdoConnection
{
// 构建/析构 ------------------------------------------
public:
	CAdoConnection();
	virtual ~CAdoConnection();

protected:
	void Release();

// 属性 -----------------------------------------------
public:
	// 连接对象 ----------------------------------
	_ConnectionPtr& GetConnection() {return m_pConnection;};

	// 异常信息 ----------------------------------
	CString GetLastErrorText();
	ErrorsPtr GetErrors();
	ErrorPtr  GetError(long index);

	// 连接字串 ----------------------------------
	CString GetConnectionText() {return m_strConnect;}

	// 连接信息 ----------------------------------
	CString GetProviderName();
	CString GetVersion();
	CString GetDefaultDatabase();

	// 连接状态 ----------------------------------
	BOOL IsOpen();
	long GetState();
	
	// 连接模式 ----------------------------------
	ConnectModeEnum GetMode();
	BOOL SetMode(ConnectModeEnum mode);

	// 连接时间 ----------------------------------
	long GetConnectTimeOut();
	BOOL SetConnectTimeOut(long lTime = 5);
	
	// 数据源信息 -------------------------------
	_RecordsetPtr OpenSchema(SchemaEnum QueryType);

// 操作 -----------------------------------------------
public:
	// 数据库连接 --------------------------------
	BOOL Open(LPCTSTR lpszConnect =_T(""), long lOptions = adConnectUnspecified);
	BOOL ConnectSQLServer(CString dbsrc, CString dbname, CString user, CString pass, long lOptions = adConnectUnspecified);
	BOOL ConnectAccess(CString dbpath, CString pass = _T(""), long lOptions = adConnectUnspecified);
	BOOL OpenUDLFile(LPCTSTR strFileName, long lOptions = adConnectUnspecified);
	void Close();

// 处理 -----------------------------------------------
public:
	// 事务处理 ----------------------------------
	long BeginTrans();
	BOOL RollbackTrans();
	BOOL CommitTrans();

	// 执行 SQL 语句 ------------------------------
	_RecordsetPtr Execute(LPCTSTR strSQL, long lOptions = adCmdText);
	BOOL Cancel();

// 数据 -----------------------------------------------
protected:
	CString			m_strConnect;
	_ConnectionPtr	m_pConnection;
};

#endif // !defined(_ANYOU_COOL_ADO_H)










































⌨️ 快捷键说明

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