vc6.0 通过ADO(udl)连接sql 2008

首先声明:本文是针对vc与sql菜鸟的,高人请让路。

本文讲解了用ADO技术连接VC6.0与sql2008(sql2000也一样)。

1.首先在vc6.0中新建一个基于对话框的应用程序,其他选项均为默认。本例中名称为Rent。(如果有问题请看vc教程)

2.在Rent项目的文件夹里建立一个udl文件。

步骤:(1)新建一个txt文件。

      (2)把后缀名改为udl,并重命名。本例中用my_data1.udl

      (3)双击m_data1.udl设置连接属性。

        其中服务器输入本地的sql服务器即可。数据库选择要连接的数据库。

        配置好后可以点“测试连接”按钮来测试是否连接成功。

3.配置好了udl文件后就可以在vc中来连接数据库了。

具体步骤:(1)引入ADO动态链接库。方法如下:在Rent工程的StdAfx.h头文件中添加如下代码:

#import"c:\program files\common files\system\ado\msado15.dll"no_namespace rename ("EOF","adoEOF")

此处有2点要注意:1):此代码必须在一行里面。

                2):不能添加到头文件的第一行,不然会报错。(笔者添加到了最后一行)

          (2)初始化COM库环境。(因为ADO是基于COM库的,所以要初始化COM库环境)

                1):在CRentapp的成员函数InitInstance()中添加如下代码:

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

                2):在CRentapp中添加虚函数ExitInstance(),在其中添加如下代码:

                      ::CoUninitialize();//清除COM库

          (3)建立连接:

                1):在CRentDlg类中添加一个_ConnectionPtr接口类型的成员变量

                      protected:

                     _ConnectionPtr m_pConnection;

                2):在CRentDlg类的OnInitDialog()函数中添加如下代码:

 HRESULThr;
 try
 {
  hr=m_pConnection.CreateInstance(__uuidof(Connection));
  if(SUCCEEDED(hr))
  {
   m_pConnection->ConnectionString="FileName=my_data1.udl";
   m_pConnection->ConnectionTimeout=10;
   hr = m_pConnection->Open("","","",adConnectUnspecified);
   AfxMessageBox("open succceeded!");
   if(FAILED(hr))
   {
    AfxMessageBox("open fail!");
    return true;
   }
  }
  else
  {
   AfxMessageBox("createinstance of Connectionfail!");
   return true;
  }
 }
 catch(_com_error e)
 {
  _bstr_t bstrSource (e.Source());

  _bstr_t bstrDescription(e.Description());
  AfxMessageBox(bstrSource + bstrDescription);
  return true;
 }

此处有1点需注意:"File Name=my_data1.udl";此句my_data1.udl前面不能有空格,因为书写习惯,有的人会在其前面加上空格,这样会报错


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值