客户端调用Sqlserver存储过程时无记录集返回-杏林求真
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> ADP及SQL SERVER


客户端调用Sqlserver存储过程时无记录集返回

发表时间:2013/5/8 8:53:12 评论(0) 浏览(9977)  评论 | 加入收藏 | 复制
   
摘 要:如题
正 文:

用VB做的客户端程序在调用服务器的存储过程时有的存储过程可以返回记录集,而有的无法返回记录集,这是为什么呢?

通过对存储过程的排查,发现问题在于结果集中返回可显示受 Transact-SQL 语句或存储过程影响的行计数的消息。也就是需要加上set nocount on语句。

SET NOCOUNT { ON | OFF } 
 备注
当 SET NOCOUNT 为 ON 时,不返回计数。当 SET NOCOUNT 为 OFF 时,返回计数。

即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。

当 SET NOCOUNT 为 ON 时,将不向客户端发送存储过程中每个语句的 DONE_IN_PROC 消息。如果存储过程中包含一些并不返回许多实际数据的语句,网络通信流量便会大量减少,因此,将 SET NOCOUNT 设置为 ON 可显著提高性能。

SET NOCOUNT 指定的设置是在执行或运行时生效,而不是在分析时生效。

示例
以下示例将禁止显示受影响的行数的消息。

USE AdventureWorks;
GO
SET NOCOUNT OFF;
GO
-- Display the count message.
Select TOP(5)LastName
FROM Person.Contact
Where LastName LIKE 'A%';
GO
-- SET NOCOUNT to ON to no longer display the count message.
SET NOCOUNT ON;
GO
Select TOP(5) LastName
FROM Person.Contact
Where LastName LIKE 'A%';
GO
-- Reset SET NOCOUNT to OFF
SET NOCOUNT OFF;
GO


Access软件网交流QQ群(群号:198465573)
 
 相关文章
[access查询]在access 中调用后台存储过程  【竹笛  2003/7/23】
存储过程入门与提高  【UMVsoft整理  2007/11/10】
在access中模拟sql server存储过程翻页  【umvsoft整理  2008/8/21】
SQL SERVER 系统存储过程汇集  【赵文斌  2011/4/24】
SQL触发器存储过程……  【乐乐  2011/11/23】
SQL存储过程相关信息查看   【赵文斌  2012/6/21】
【Access教程】存储过程入门  【漏蛧尐魚℡  2012/9/6】
【Access教程】vba中调用存储过程  【漏蛧尐魚℡  2012/9/27】
sql2005与sql2008存储过程中 变量使用的一处区别  【smeyou  2013/4/3】
SQL Server 存储过程  【杜超-2号  2013/4/13】
常见问答
技术分类
相关资源
文章搜索
关于作者

杏林求真

文章分类

文章存档

友情链接