Recordset(0x800A0BB9)奇怪的错误,找遍了ms新闻组,没得到答案,不知道有没有遇到过的(另开贴给分,欢迎提供线索)
<%
set oConn=Server.CreateObject("ADODB.Connection")
set oRs=Server.CreateObject("ADODB.Recordset")
'oConn.Open "DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=;DATABASE=Northwind"
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/public/Northwind.mdb") & ";"
Set oRs = oConn.Execute("SELECT * FROM users")
'oRs.Open Server.MapPath("RESULT.XML")
'Response.Write oConn.State
'Response.End
'oRs.Open "SELECT * FROM users",oConn,3
while not oRs.EOF
Response.Write oRs(0) & "<BR>"
oRs.MoveNext
wend
oRs.Close
oConn.Close
%>
上面的代码把Set oRs = oConn.Execute("SELECT * FROM users")换成
oRs.Open "SELECT * FROM users",oConn,3
或
oRs.Open "SELECT * FROM users",oConn
死活运行不下去,提示Recordset 0x800A0BB9错误.
连接是没有问题的.输出connection的state=1表示已打开,并且用oConn能够返回记录集.只有当用recordset去open的时候才出错(以任何一种游标和锁打开).
同样的问题对于连接sql server也是存在(用VB运行出现同样的错误).
但当用recordset去open打开一个以前save过的recordset xml文件时.又是正常的.
我用mdac的版本检测程序检测到了一些组件警告信息,但这些信息我之前在别的机器上也遇到过.
我的mdac版本是2.6RTM,之前由于这个问题进行过win2k(Profession)的紧急修复安装,之后再安装了sql server2000个人版,由于在sql server2000的安装过程中出现了异常终止,我只好手工删除了注册表中的下面这些键
+ HKEY_LOCAL_MACHINE
+ SOFTWART
+ Microsoft
+ Windows
+ CurrentVersion
+ Setup
+ ExceptionComponents
将 ExceptionComponents 下面的文件夹全部删除!
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
{60BFF50D-FB2C-4498-A577-C9548C390BB9}
然后删除了sql server的整个注册表键.之后用 k=dbg的参数以单步方式运行了sql server的安装程序,sql server安装成功后,上面的代码就再也没有运行通过了.
如果哪位兄弟遇到过这种情况,并提供解决问题的线索,我将另外开贴给分