简单的VC++ ADO帮助类

首先看头文件

#pragma once
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")

#if !defined(AFX_ADOCONN_H__75D447E2_EABB_4A14_9762_DD826E28D19A__INCLUDED_)
#define AFX_ADOCONN_H__75D447E2_EABB_4A14_9762_DD826E28D19A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CAdoConn
{
public:
    _ConnectionPtr m_pConnection;
    _RecordsetPtr m_pRecordset;

public:
    CAdoConn(void);
    virtual ~CAdoConn(void);
    void OnInitADOConn();                            // 初始化—连接数据库
    _RecordsetPtr& GetRecordSet(CString bstrSQL);    // 执行查询
    BOOL ExecuteSQL(CString bstrSQL);                // 执行SQL语句,Insert Update _variant_t
    void ExitConnect();
};

#endif 

下面是实现

#include "stdafx.h"
#include "AdoConn.h"

CAdoConn::CAdoConn(void)
{
}

CAdoConn::~CAdoConn(void)
{
}

void CAdoConn::OnInitADOConn()
{
    ::CoInitialize(NULL);

    try
    {
        m_pConnection.CreateInstance("ADODB.Connection");
        _bstr_t strConnect = "Provider=SQLOLEDB.1; Server=(local); Database=LibraryManageSys; user id=sa;password=root;";
        m_pConnection->Open(strConnect,"","",adModeUnknown);
    }
    catch(_com_error e)
    {
        AfxMessageBox(e.Description());
    }
}

_RecordsetPtr& CAdoConn::GetRecordSet(CString bstrSQL)
{
    try
    {
        if(m_pConnection==NULL)
            OnInitADOConn();
        m_pRecordset.CreateInstance(__uuidof(Recordset));
        m_pRecordset->Open((_bstr_t)bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
    }
    catch(_com_error e)
    {
        AfxMessageBox(e.Description());
    }
    return this->m_pRecordset;
}

BOOL CAdoConn::ExecuteSQL(CString bstrSQL)
{
    try
    {
        if(m_pConnection == NULL)
            OnInitADOConn();
        m_pConnection->Execute((_bstr_t)bstrSQL,NULL,adCmdText);
        return TRUE;
    }
    catch(_com_error e)
    {
        AfxMessageBox(e.Description());
        return FALSE;
    }
}

void CAdoConn::ExitConnect()
{
    if (m_pRecordset != NULL)
        m_pRecordset->Close();
    m_pConnection->Close();

    ::CoUninitialize();
}

把组件的初始化和取消初始化功能都集中在这个类中,屏蔽掉数据库使用的一些细节,当然功能很简单也就能实现各简单的增删改查,不过对于做一些小型应用来说帮助还是很大的。

时间: 2024-10-17 16:52:33

简单的VC++ ADO帮助类的相关文章

Oracle oledb 打包并集成到程序安装包(VC ADO访问Oracle)

最近有一个项目和oracle交互,我用的是ADO的方式进行试问操作. 首先把数据库连接的东东记录一下,老了记性不好啊! 操作如下: //连接串这么写的话就可以不用配置 tnsnames.ora配置文件了(网上很多教程都让改这个配置文件) strConnect.Format("Provider=OraOLEDB.Oracle.1;Password=%s;Persist Security Info=True;User ID=%s;\ Data Source=\"(DESCRIPTION =

第一天:简单工厂模式与UML类图

何为简单工厂模式: 通过专门定义一个类,来负责创建其他类的实例,这些其它类通常具有共同的父类. 简单工厂模式的UML类图: 简单工厂模式中包含的角色和相应的职责如下: 工厂类Creator:简单工厂模式的核心,负责创建所有类的实例.该工厂类必须能够被客户端类调用,创建所需要的产品对象. 抽象产品类:简单工厂所创建的所有产品类的父类. 具体产品类:简单工厂所创建的具体实例对象,这些具体产品往往拥有共同的父类(抽象产品类). 计算器实例的c++代码实现:

iOS开发—音频的播放的简单介绍和封装工具类

iOS开发—音频的播放的简单介绍和封装工具类 一.音效的播放简单介绍 简单来说,音频可以分为2种 (1)音效 又称“短音频”,通常在程序中的播放时长为1~2秒 在应用程序中起到点缀效果,提升整体用户体验 (2)音乐 比如游戏中的“背景音乐”,一般播放时间较长 框架:播放音频需要用到AVFoundation.framework框架 二.音效的播放 1.获得音效文件的路径 NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_03.wav&qu

有没有最简单的xml转换java类的方法

原文:有没有最简单的xml转换java类的方法 代码下载地址:http://www.zuidaima.com/share/1550463237098496.htm 手动编码太烦人了,每次新增一个java entity类都需要写一个解析器. 有没有最简单的xml转换java类的方法,布布扣,bubuko.com

【转】Unity3D 场景切换与持久化简单数据储存(PlayerPrefs类)

本篇文章主要介绍了"Unity3D 场景切换与持久化简单数据储存(PlayerPrefs类)",主要涉及到Unity3D 场景切换与持久化简单数据储存(PlayerPrefs类)方面的内容,对于Unity3D 场景切换与持久化简单数据储存(PlayerPrefs类)感兴趣的同学可以参考一下. 持久化简单的数据储存在Unity3D 中提供了一个简单有效的方法,如果之前的你做过Android的开发你会发现在Unity3D中持久化数据的储存和Android非常的想象.那么下面MOMO 将用一

超简单的php上传类代码

这个是我昨晚写的一个超简单的上传类,只要 $up->upload($_FILES['imgfile']); 即可. 一条语句搞定上传 石家庄工商代办送给所有草根的个人站长 上传文件: up.php <?php //验证 if(empty($_COOKIE['login'])) { die('index'); } //加载类 include_once("_inc/class_uppic.php"); //上传 if(!empty($_GET['action']) &&

C#反射技术的简单操作(读取和设置类的属性)

public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type = aa.GetType();//获取类型 System.Reflection.PropertyInfo propertyInfo = type.GetProperty("Property1"); propertyInfo.SetValue(aa, 5, null);//给对应属性赋值 i

C#实现简单获取及设置Session类

本文实例讲述了C#实现简单获取及设置Session类.分享给大家供大家参考.具体分析如下: 这是一个简单的C#获取Session.设置Session类文件,本类主要实现大家最常用的两个功能: 1.GetSession(string name)根据session名获取session对象: 2.SetSession(string name, object val)设置session 具体代码如下: using System.Web; namespace DotNet.Utilities { ///

VC++ ADO相关

<VC对ADO的操作> ADO概述: ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据.ADO 最主要的优点是易于使用.速度快.内存支出少和磁盘遗迹小.ADO 在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量.高性能的接口. 之所以称为 ADO,是用了一个比较熟悉的暗喻,OLE 自动化接口.