zoukankan      html  css  js  c++  java
  • 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();  //释放环境

    }

  • 相关阅读:
    python之生成器
    flask_sqlalchemy filter 和filter_by的区别
    Linux 更新python至2.7后ImportError: No module named _ssl
    Linux pip 安装模块时,一直黄字错误:Could not find a version that satisfies the requirement
    Linux 创建python虚拟环境
    python 需求文件requirements.txt的创建及使用
    wget http://pypi.python.org/packages/source/s/setuptools/setuptools-2.0.tar.gz 下载时报错 ssl is required 解决办法
    结合daterangepicker实现Datatables表格带参数查询
    datatable 的ajax修改参数,post可以传参处理
    datatables 参数详解(转)
  • 原文地址:https://www.cnblogs.com/zhangaihua/p/3718079.html
Copyright © 2011-2022 走看看