资源简介
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++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
评论
共有 条评论