• vc++ 中ADO数据库的配置(SQLServer2005)


    1.       首先在StdAfx.h中添加以下代码引入数据库:

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

    2.       然后再VC6.0VS2012中:插入->类,弹出一个窗口,类名叫做CADOConn,基类选择Generic Class(切记)

    3.       然后在Class View中双击CADOConn,添加以下代码:

    class ADOConn 

    {

    public:

    ADOConn();

    virtual ~ADOConn();

    _ConnectionPtr m_pConnection;//添加一个指向Connection对象的指针

    _RecordsetPtr m_pRecordset;//添加一个指向Recordset对象的指针

    void OnInitDBConnect();//初始化—连接数据库

    _RecordsetPtr &GetRecordSet(_bstr_t bstrSQL);//执行查询

    BOOL ExecuteSQL(_bstr_t bstrSQL);//执行SQL语句,Insert Update_variant_t

    void ExitConnect();

    };

    然后在File View中找到ADOCon.cpp文件,添加以下代码:

    ADOConn::ADOConn()

    {

     

    }

     

    ADOConn::~ADOConn()

    {

     

    }

     

    void ADOConn::OnInitDBConnect()

    {

    ::CoInitialize(NULL);  //初始化OLE/COM库环境

    try

    {

               m_pConnection.CreateInstance("ADODB.Connection");  //创建connection对象            

               m_pConnection->Open("driver={SQL Server};Server=小爱-PCSQLSERVER2005;Database=HCCP;","","",adModeUnknown);

      //m_pConnection->Open("driver={SQL Server};Server=HC\MSSQL2008;Database=HCCP;UID=sa;PWD=","","",adModeUnknown);  //设置连接字符串,必须是BSTR型或者_bstr_t类型

    }

    catch(_com_error e)  //捕捉异常

    {

               AfxMessageBox(e.Description());//显示错误信息

    }

    }

     

    _RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL)

    {

    try

    {                

               if(m_pConnection==NULL)  //连接数据库,如果connection对象为空,则重新连接数据库8

                        OnInitDBConnect();

              

               m_pRecordset.CreateInstance(__uuidof(Recordset));  //创建记录集对象                

               m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);  //取得集中的记录

    }

    catch(_com_error e)  //捕捉异常

    {

               AfxMessageBox(e.Description());  //显示错误信息

    }

    return m_pRecordset;  //返回记录集

    }

     

    BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL)

    {

    try

    {                

               if(m_pConnection==NULL)  //是否已经连接到数据库

                        OnInitDBConnect();

               m_pConnection->Execute(bstrSQL,NULL,adCmdText);

               return true;

    }

    catch(_com_error e)  //捕捉异常

    {

               AfxMessageBox(e.Description());  //显示错误信息

               return false;

    }

    }

     

    void ADOConn::ExitConnect()

    {        

    if(m_pRecordset!=NULL)  //关闭记录集和连接

    {

               m_pRecordset->Close();

               m_pConnection->Close();

    }

    ::CoUninitialize();  //释放环境

    }

  • 相关阅读:
    VLAN应用实例
    eNSP 简介及基础操作
    管道符、重定向
    使用Bind提供域名解析服务-DNS
    Samba服务
    虚拟网站主机功能
    springboot接受表单400错误
    Java方法遍历一次数组返回两个结果(最大值与最小值)
    Java异常总结
    Java内部类
  • 原文地址:https://www.cnblogs.com/zhangaihua/p/3718079.html
Copyright © 2020-2023  润新知