资源简介
对ADO进行简单封装,支持参数化、存储过程。
同一语句可以多次执行,以提高效率。
使用方法:
1、创建对象
2、参数准备(如果有的话)
3、数据库命令准备(如果需要多次执行)
4、打开数据库连接
5、执行SQL语句或者准备好的数据库命令,返回受影响的记录条数或者数据集中地记录数。
6、操作传出的数据集(可参照ExecuteScalar)
7、使用PutParameters刷新参数值,进行再次执行(如果需要多次执行)。
8、调用CloseRecordset关闭数据集,同时释放数据库命令对象。
9、关闭数据库连接。
注释暂时比较少,请多包涵。
代码片段和文件信息
#include “stdafx.h“
#include “ADOAccess.h“
CADOAccess::CADOAccess()
{
try
{
CoInitialize(NULL);
m_pConnection.CreateInstance(“ADODB.Connection“);
}
catch(...)
{
TRACE(L“Warning: %s 发生异常. 错误信息: %s; 文件: %s; 行: %d\n“)
__FUNCTION__ L“未知错误“ __FILE__ __LINE__);
}
}
CADOAccess::~CADOAccess()
{
m_pConnection.Release();
CoUninitialize();
}
BOOL CADOAccess::IsConnectionOpen()
{
return (m_pConnection != NULL && (m_pConnection->State & adStateOpen));
}
_RecordsetPtr CADOAccess::OpenSchema(SchemaEnum QueryType)
{
return m_pConnection->OpenSchema(QueryType);
}
BOOL CADOAccess::OpenConnection(LPCTSTR lpszConnect long lOptions)
{
HRESULT rtn;
if (_tcscmp(lpszConnect _T(““)) != 0)
{
m_strConnection = lpszConnect;
}
if (m_strConnection.IsEmpty())
{
ASSERT(FALSE);
return FALSE;
}
if (IsConnectionOpen())
{
return TRUE;
}
try
{
m_pConnection->Mode = adModeReadWrite;
m_pConnection->CursorLocation = adUseClient;
rtn = m_pConnection->Open((_bstr_t)m_strConnection ““ ““ lOptions);
return (rtn == S_OK);
}
catch (_com_error e)
{
TRACE(_T(“Warning: %s 发生异常. 错误信息: %s; 文件: %s; 行: %d\n“)
__FUNCTION__ e.ErrorMessage() __FILE__ __LINE__);
return FALSE;
}
catch (...)
{
TRACE(_T(“Warning: 连接数据库时发生未知错误:“));
}
return FALSE;
}
BOOL CADOAccess::ConnectSQLServer(CString strDBSrc CString strDBName
CString strUser CString strPwd long lOptions)
{
CString strConnect =_T(“Provider=SQLOLEDB.1; Data Source=%s;“);
strConnect.Append(_T(“ Initial Catalog=%s; User ID=%s; PWD=%s“));
m_strConnection.Format(strConnect strDBSrc strDBName strUser strPwd);
return OpenConnection(m_strConnection lOptions);
}
void CADOAccess::CloseConnection()
{
try
{
CloseRecordset();
if (m_pCommand != NULL)
{
m_pCommand.Release();
}
if (IsConnectionOpen())
{
m_pConnection->Close();
}
}
catch (_com_error e)
{
TRACE(_T(“Warning: %s 发生异常. 错误信息: %s; 文件: %s; 行: %d\n“)
__FUNCTION__ e.ErrorMessage() __FILE__ __LINE__);
}
}
long CADOAccess::BeginTrans()
{
ASSERT(m_pConnection != NULL);
try
{
return m_pConnection->BeginTrans();
}
catch (_com_error e)
{
TRACE(_T(“Warning: %s 发生异常. 错误信息: %s; 文件: %s; 行: %d\n“)
__FUNCTION__ e.ErrorMessage() __FILE__ __LINE__);
return -1;
}
return -1;
}
BOOL CADOAccess::RollbackTrans()
{
ASSERT(m_pConnection != NULL);
try
{
return SUCCEEDED(m_pConnection->RollbackTrans());
}
catch (_com_error e)
{
TRACE(_T(“Warn
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2097 2009-11-20 14:21 ADOAccess.h
文件 9018 2009-11-23 15:01 ADOAccess.cpp
----------- --------- ---------- ----- ----
11115 2
相关资源
- 6.SparkSQL下--Spark实战应用.pdf
- 基于SolidWorks的罗茨风机叶轮参数化建
- sqldecryptor_3.0.8.rar
- vue+Tornado+Nginx+Mysql
- ORACLE存储过程最全教程
- ADO连接ACCESS酒店订单系统
- ADOAccess.rar
- 学生公寓管理系统 (ADO+ACCESS)
- SqlServer存储过程、游标讲解
- dbForge-SqlDecryptor存储过程/函数解密工
- 接收串口数据保存至ACCESS数据库
- 实验6:存储过程实验
- .net代码生成器,可以将sqlserver、mys
- SQL2008存储过程解密工具
- VC ADO连接SqlServer 程序
- ADO连接SQL Server 2008数据库代码完整工
- sqlserver存储过程解密工具
- 基于Spark的大数据分析平台的设计与实
- 基于JFinal+Hadoop+mysql的云盘管理系统
- 星环tdhhadoop内部培训pdf
- 串口接收与SQL数据库存取
- 21天学通Oracle第二版(pdf+ppt+练习答案
- hadoop-3.0.0.tar.gz
- dorado+springboot+mybatis行政区划包不含
- 实验6答案-存储过程.sql
- 小型超市管理系统sql数据库+各种功能
- VC ADO ACCESS操作.rar
- bat+sqlcmd 通过参数形式调用任意存储过
- 课程设计 hadoop集群的安装与配置
- mysql学习笔记和案例(完全版)
评论
共有 条评论