资源简介
C++ADO连接SQLServer封装类,实现类的封装方便使用
代码片段和文件信息
#include “stdafx.h“
#include
#include “ADO.h“
CADO::CADO(void)
{
CoInitialize(NULL);
m_bTransactionerror = false;
m_bTransaction = false;
m_lRecordCount = 0;
m_pConn.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_strDb = “127.0.0.11433“;
m_strUser = “sa“;
m_strPsw = “test“;
}
CADO::~CADO(void)
{
Close();
m_pRecordset.Release();
m_pConn.Release();
CoUninitialize();
}
bool CADO::Close(void)
{
if (m_pConn == NULL || !IsOpen())
return false;
m_pConn->Close();
return true;
}
bool CADO::Connect(void)
{
string conData = “Provider=SQLOLEDB;Server=“;
conData += m_strDb;
conData += “;uid=“;
conData += m_strUser;
conData += “;pwd=“;
conData += m_strPsw;
// conData += “;database=ASPlatConfigDB;“;
try
{
HRESULT hRet = m_pConn->Open(conData.c_str()““““adConnectUnspecified);
if(!SUCCEEDED(hRet))
return false;
}
catch(_com_error &comError)
{
dump_com_error(comError);
return false;
}
return true;
}
bool CADO::IsOpen(void)
{
try
{
return (m_pConn != NULL && (m_pConn->State & adStateOpen));
}
catch(_com_error &e)
{
dump_com_error(e);
}
return false;
}
void CADO::dump_com_error(_com_error &e)
{
string ErrorStr;
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
ErrorStr = “MAdoDatabase Error=“;
ErrorStr += “\n\tSource =“;
ErrorStr += (LPCSTR)bstrSource;
ErrorStr += “\n\tDescripiion =“;
ErrorStr += (LPCSTR)bstrDescription;
}
bool CADO::Execute(const string &exec)
{
if( m_pConn == NULL || exec.empty() || !IsOpen() )
return false;
try
{
if (m_bTransaction && m_bTransactionerror)
return false;
m_pConn->Execute( exec.c_str()NULLadExecuteNoRecords );
return true;
}
catch(_com_error &e)
{
if (m_bTransaction)
{
m_bTransactionerror = true;
}
dump_com_error(e);
}
return false;
}
_RecordsetPtr CADO::Query(const string &CommandStr VARIANT * RecordsAffected /* = NULL */)
{
try
{
if (!IsOpen())
return NULL;
m_pRecordset = m_pConn->Execute(CommandStr.c_str() RecordsAffected adModeUnknown);
m_lRecordCount = GetRecordCount(m_pRecordset);
return m_pRecordset;
}
catch (_com_error& e)
{
dump_com_error(e);
return NULL;
}
}
long CADO::BeginTransaction(void)
{
if(m_pConn==NULL)
return -1;
try
{
m_bTransaction = true;
long lRet = m_pConn->BeginTrans();
m_bTransactionerror = false;
return lRet;
}
catch(_com_error &e)
{
dump_com_error(e);
m_bTransactionerror = true;
return -1;
}
return -1;
}
bool CADO::EndTransaction(void)
{
if(m_pConn == NULL)
return false;
try
{
bool bRet = false;
if (m_bTransactionerror)
{
m_pConn->RollbackTrans();
bRet = false;
}
else
{
bRet = SUCCEEDED(m_pConn->CommitTrans());
}
m_bTransactionerror = false;
m_bTransaction =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6473 2012-10-31 13:54 ADO\ADO.cpp
文件 1525 2012-10-31 13:55 ADO\ADO.h
文件 536576 2011-08-13 16:06 ADO\msado15.dll
目录 0 2012-10-31 13:55 ADO
----------- --------- ---------- ----- ----
544574 4
相关资源
- 幂法与反幂法 C++程序
- c++软件实习开发报告
- HDLC协议概述及c++实现
- C++自动生成等高线源程序
- c++简单线程池的实现
- Visual C++实现的FFT变换
- 数据结构课程设计公交线路优化查询
- vc++注册表文件关联,图标关联
- c++实现生产者消费者问题
- C#与C++进程间通信
- C++实验5代码5
- C++实验4代码4.3
- 清华大学C++ 郑莉老师教学视频 45集
- advapi32.lib77067
- 网络爬虫 C++ 代码
- 网关模板 C/C++程序编写
- 一个基于C++和mssql的本科生信息管理系
- 用c++写的一个udp聊天程序
- VC++面向对象与可视化程序设计第三版
- [网盘]C++Primer Plus第6版中文版.pdf
- 条件随机场资料CRFC++版
- 扫雷vc++sdk
- 04_图像编辑器实现.zip
- c++实现简单的topsis算法
- VC++折叠展开型百叶窗的窗体面板组
- 时间轮 C语言版
- socket实现的CS框架
- 用C++实现的CURE算法的源码
- C++实现的BIRCH算法
- 给予c++的多线程
评论
共有 条评论