经典ASP SQLNCLI连接字符串返回可与SQLOLEDB一起正常工作的空记录集
问题描述:
试图切换到SQLNCLI,以便我可以在我的ASP应用程序中使用varchar(max)字段。在SQLOLEDB下正常工作的查询没有返回记录。经典ASP SQLNCLI连接字符串返回可与SQLOLEDB一起正常工作的空记录集
连接字符串打开如下:
ConnStr="Provider=SQLNCLI10;Server=129.118.139.78,8888;Server=UWCTest;Uid=user;Pwd=pass;DataTypeCompatibility=80;MARS Connection=true;"
oConn.Open connStr
和代码来获取记录如下:
sSQL="usp_tutors_active_select"
Set dbCommand = Server.CreateObject("ADODB.Command")
Set dbCommand.ActiveConnection = oConn
dbCommand.CommandType = adCmdStoredProc
dbCommand.Commandtext=sSQL
set oRST=dbCommand.Execute
Response.Write orst("firstname")
do while not datacommand1.EOF
Response.Write "<option value=" & orst("firstname") & ">" & orst("firstname")
orst.MoveNext
loop
答
原来我需要在服务器上安装SQLCNI提供程序;被明显空白的记录掩盖的实际错误实际上是一个“未找到提供者”。
答
尝试增加SET NO COUNT ON
到usp_tutors_active_select
顶部。我似乎记得之前有过这个问题。
+0
嗯,也许不是真的。我记得它引起了ADO的一些问题,但也许不是这样。这个讨论可能是相关的。 http://www.eggheadcafe.com/software/aspnet/31753706/transactions-in-sql-serve.aspx我可能会使用SQL事件探查器来调查 - 捕获行数列。 – 2010-07-18 00:39:51
orst.RecordCount在两种情况下都说了什么?改变提供商应该没有区别 – gbn 2010-07-16 17:01:35