怎么用ado打开带密码的access数据库

       经常有人在网上问到怎么使用ado来打开带有密码的access数据库,下面我来详细介绍使用udl文件来打开带有密码的access数据库。

       假设access数据库文件client.mdb打开密码是“cxw”。

       第一步:建立udl文件

       在win2000下新建一个文本文件test.txt,然后将文件后缀改为.udl。双击文件打开test.udl出现如下对话框:

                      

                                                      图1

      在上面的对话框中选择数据库的驱动,我们选择access2000的驱动Microsoft Jet 4.0 OLE DB Provider,点击“Next>>”进入如下图所示对话框:

                       

                                                                    图2

       首先选择数据源文件,点击“...”按钮选择access数据库文件。在Username编辑框中输入用户名Admin(access数据库的用户名是固定的),选中“Blank password”。其他保持默认值,进入“All”页面如下图所示:

                  

                                                              图3

      在上图中选中“Jet OLE DB:Database Password”,点击“Edit Value...”按钮输入access数据库client.mdb的密码“cxw”,点确定退出。再在上图的对话框中选中“Persist Security Info”,点击“Edit Value...”选择false。其他保持默认值。这样udl文件已经设置完毕,我们可以进入“Connection”页面(如图2),在对话框中点击“Test Connection”可以测试连接是否成功,测试成功就表明udl文件已经成功建立。

      第二步,建立ado连接

      首先在stdafx.h文件中加入:

        #pragma warning (disable: 4146)

        #import "c:/Program Files/Common Files/system/ado/msado15.dll" /

                    no_namespace rename("EOF", "EndOfFile")
        #pragma warning (default: 4146)

       而且还要注意这段话的位置,要在stdafx.h中所有include语句的后面

      由于ado是com组件,因此在应用程序的开始要初始化com环境:

      ::CoInitialize(NULL);

      然后在需要连接数据库的代码出加入如下代码:

      _ConnectionPtr m_pDBConn;

     m_pDBConn.CreateInstance(__uuidof(Connection));    //创建com对象

     m_pDBConn->ConnectionString ="File Name=c://mydir//test.udl";

     try{
            m_pDBConn->Open("","","",NULL);
     }catch(_com_error &e){
             //处理异常的代码
             . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
             m_pDBConn=NULL;

     }

     这样就已经使用udl文件建立了ado连接,使用udl文件连接数据库的优点是:

当你连接的数据库名称或者用户名密码等发生变化时,你只需要更改一下udl文件即可,不需要修改你的源程序,当然更不需要重新编译了。

    最近在网上看见有网友评论用udl文件密码会暴露,经过验证确有此事。所以可以用下面的方法来解决:

m_pDBConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=client.mdb;Persist Security Info=False;Jet OLEDB:DataBase Password=cxw","","",adModeUnknown);

                                                                                         可以发邮件讨论

                                                                                             peckermen@163.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值