数据库是DOS下的FoxBASE生成的.DBF文件,用VB编写的代码如下:Dim cn As New adodb.Connection
Dim rs As New adodb.RecordsetDim strpath As string'数据库路径
Dim strfilename As string'数据库文件名Dim sql As String
strconn = "Provider=MSDASQL;Driver=Microsoft Visual Foxpro Driver;SourceDB=" & strpath & ";SourceType=DBF"
cn.Open strconn
sql = "select * from " & strfilename
rs.CursorLocation = adUseClient
rs.Open sql, cn, adOpenDynamic, adLockPessimistic此代码在Windows2000,VB6+SP5环境中编译没有任何问题,可是在Windows XP中却无法运行,表现为程序执行之后如果想获取rs.RecordCount的话则出错,显示
---------------------------------------------------------
实时错误’-2147467259(80004005)’
数据提供程序或其它服务返回E_FAIL状态.
---------------------------------------------------------
把代码全部移到Windowx XP内调试,发现其实在Windows XP下运行时,生成的RecordSet中没有任何记录,于是我又安装了VS SP6以及vfpoledb,均无法解决问题,请教该如何解决?

解决方案 »

  1.   


    最初是把这些代码编译的.EXE程序拷贝到Windows XP机器上运行,出错。
    于是再把一些.DLL和.OCX拷贝过去并注册,仍不能运行。
    干脆用SetupFactory打好包,再拿到Windows XP上安装,还是无法运行。
    最后没办法,在Windows XP上安装了VB6+SP6进行调试,结果发现当读取rs.recordcount时便返回错误,
    于是在窗体中增加一个DataGrid,并且set DataGrid1.datasource=rs,结果发现DataGrid中什么内容都没有,也就是说在Windows XP中运行时,什么数据都没有获取到。
    可是在Windows 2000中根本没有这种情况,不知道问题究竟出在哪儿,求助!
      

  2.   

    同意楼上,你的XP没有ADO环境
      

  3.   

    大哥,不行啊,我安装MDAC 2.7问题依旧。
    其实在安装VB6的时候就已经安装了MDAC的,因为我是完全安装的。
    唉,真是急死人了,不可能为了这个软件,而把用户的系统改成Windows 2000 吧。
      

  4.   

    strconn = "Provider=MSDASQL;Driver=Microsoft Visual Foxpro Driver;SourceDB=" & strpath & ";SourceType=DBF"
    问题可能,连接字符串的.
      

  5.   

    遇到过!!最好的解决办法把源程序放到winxp的环境下编译打包肯定没有问题!!
      

  6.   


    Windows 2000 的ADO版本是2.5
    Windows XP 的ADO版本是2.7我的源代码在Windows 2000 调试运行什么问题都没有,
    而在Windows XP的环境内连源代码都不能调试通过,在几台Windows XP的电脑上都试过。rs.CursorLocation = adUseServer
    rs.Open sql, cn, adOpenStatic, adLockReadOnly
    把游标改为静态的也不行!rs中仍然什么记录都没有!这个程序在 Windows ME 、Windows 2000 内均可以用,唯独在Windows XP 内不可以用。