数据库是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,均无法解决问题,请教该如何解决?
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,均无法解决问题,请教该如何解决?
最初是把这些代码编译的.EXE程序拷贝到Windows XP机器上运行,出错。
于是再把一些.DLL和.OCX拷贝过去并注册,仍不能运行。
干脆用SetupFactory打好包,再拿到Windows XP上安装,还是无法运行。
最后没办法,在Windows XP上安装了VB6+SP6进行调试,结果发现当读取rs.recordcount时便返回错误,
于是在窗体中增加一个DataGrid,并且set DataGrid1.datasource=rs,结果发现DataGrid中什么内容都没有,也就是说在Windows XP中运行时,什么数据都没有获取到。
可是在Windows 2000中根本没有这种情况,不知道问题究竟出在哪儿,求助!
其实在安装VB6的时候就已经安装了MDAC的,因为我是完全安装的。
唉,真是急死人了,不可能为了这个软件,而把用户的系统改成Windows 2000 吧。
问题可能,连接字符串的.
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 内不可以用。