各位大虾救命,小弟在装有VC环境下用ADO连接*.mdb数据库,往*.mdb数据库文件读写数据都没问题,但把可执行文件放到没有装VC的环境中怎么都不能和*.mdb数据库连接上,我知道肯定是有个动态连接库我没有安装,但不知道是哪一个?有没有办法知道我的ADO调用了哪些DLL文件啊,各位救命啊……

解决方案 »

  1.   

    ADO环境,不但要统一DLL,还要统一DLL的版本。
    在DEBUG模式下,在VC的调试窗口可以看到当前应用调用的所有DLL.
    但是:
    ADO本身就有移植问题,开发环境和使用环境必须使用同一版本。
    解决办法:在开发中安装微软的msdac2.7,也在用户环境安装。
    彻底解决: 在VC下不要用ADO,用OLE DB,才是最好的方式。
    ADO: 
    是为了其他环境能够使用OLE DB而产生的,它只是包装了OLE DB。
    在VC环境下,要使用OLE DB,在客户端不用装任何东西。
    VC使用ATL模板操作OLE DB,提供的支持比ADO低层,也丰富的多。
      

  2.   

    谢谢 r3000,我VC6.0开发的,我在开发的环境下安装的ADO版本不知道多少;我在使用环境未装VC6.0时,从SQLSERVER2000导数据到.MDB就是不行,安装VC6。0后就可以,对比安装前后我发现c:\Program Files\Microsoft Shared\dao\多了DAO2535.TLB,DAO350.DLL两个文件,如果删除这两个文件,即使安装了VC6.0也导数据到MDB不成功,备份这两个文件然后卸掉VC,还是不行,希望各位大虾多多帮助,小弟不胜感激
      

  3.   

    在MSADO15.DLL点鼠标右键-属性-版本,就能看到ado的版本,现在最高是2.7
    在看看客户端这个文件的版本,不一致就不行。
    跟VC6.0发行的ado可能是2.1或2.5。
    你说的两个文件应该不会影响操作,这是DAO用到的,可能注册表里有一些CLSID影响的。
    我说的办法肯定行,去www.microsoft.com/data下载msdac2.7sp1(5M)
    在你的开发环境上安装,然后,重新编译程序,再在用户机上安装,这样就统一了版本,
    msdac.exe中包括了odbc,ado,oledb,dao等所有数据连结用的dll和注册信息,因此可以解决
    问题。
      

  4.   

    r3000,还是不行,我按照你的做法都做了,就是行不通,据说msado15.dll有高低版本不兼容问题,要用msado20.tli,怎么可以找到这个文件啊,.cn
    希望各位大虾能拉小弟一把
      

  5.   

    呵呵,我已经解决了,就是system32下面少了个驱动链接库:MSJET35.DLL