我将我们的 ASP 代码切换为使用 SQL Native Client,以便我们可以连接到具有故障转移伙伴的镜像数据库,因为您只能在 SQL Native Client 中提供故障转移伙伴参数。当我运行一个返回带有 Driver={SQL Server} 的 nvarchar(max) 列的过程时,一切正常。当我使用 Driver={SQL Server Native Client 10.0} 运行返回小列的 procs 时,它工作正常。只有当我尝试运行一个在使用 Driver={SQL Server Native Client 10.0} 时返回 nvarchar(max) 列的 proc 时;我得到了错误。一旦我们点击,错误就会发生
rs.Open cmdTemplate
所以我什至没有提到专栏。像这样设置 conn 字符串:
if bUseSQLNative then
connString = "Driver={SQL Server Native Client 10.0}; Network=DBMSSOCN; server=" & rs("SERVER_NAME") & "," & rs("PORT_NUM") & ";database=" & rs("DATABASE_NAME")
connString = connString & ";uid=" & rs("USER_NAME") & ";pwd=" & UnProtectValueEx(ConnSaltForDBPwd(), rs("CONNECTION_NAME"), rs("PASSWORD"))
else
connString = "Driver={SQL Server}; Network=DBMSSOCN; server=" & rs("SERVER_NAME") & "," & rs("PORT_NUM") & ";database=" & rs("DATABASE_NAME")
connString = connString & ";uid=" & rs("USER_NAME") & ";password=" & UnProtectValueEx(ConnSaltForDBPwd(), rs("CONNECTION_NAME"), rs("PASSWORD"))
end if
connString = connString & ";"
并像这样打开:
set rs = server.CreateObject("ADODB.RecordSet")
rs.CursorLocation = 3
rs.CursorType = 3
rs.CacheSize = 50
on error resume next
rs.Open cmdTemplate
错误是:Microsoft 光标引擎 (0x800A0001) 数据提供程序或其他服务返回 E_FAIL 状态。