SqlServer ado连接 调用存储过程出 0x80020009 错
2010-05-28 09:55
183 查看
@database = Sequel.ado(:conn_string=>conn, :provider=>"SQLNCLI10")
@database.fetch "select * from Peopel.dbo.Hello"
@database.run "exec Peopel.dbo.getmsg;"
出现 下面错误
OLE error code:800A0E78 in ADODB.Recordset
Operation is not allowed when the object is closed.
HRESULT error code:0x80020009
在存储过程前加上 Set Nocount ON; 就可以了。
@database.run "Set Nocount ON; exec Peopel.dbo.getmsg;"
或者在存储过程的定义里的,开始处加上 set nocount on; procedure ....; set nocount off. 这样也可以优化存储过程的速度。
set nocount on 会关闭 Transact-SQL 语句中的 affect rows 输出, 当存储过程有多个select 或 insert, update 语句时, affect rows 会影响ado 的 dataset。
@database.fetch "select * from Peopel.dbo.Hello"
@database.run "exec Peopel.dbo.getmsg;"
出现 下面错误
OLE error code:800A0E78 in ADODB.Recordset
Operation is not allowed when the object is closed.
HRESULT error code:0x80020009
在存储过程前加上 Set Nocount ON; 就可以了。
@database.run "Set Nocount ON; exec Peopel.dbo.getmsg;"
或者在存储过程的定义里的,开始处加上 set nocount on; procedure ....; set nocount off. 这样也可以优化存储过程的速度。
set nocount on 会关闭 Transact-SQL 语句中的 affect rows 输出, 当存储过程有多个select 或 insert, update 语句时, affect rows 会影响ado 的 dataset。
相关文章推荐
- ADO连接oracle数据库,并调用带参数的存储过程
- 关于ADO连接MYSQL调用存储过程的ERROR1064错误
- Oracle数据库连接、存储过程及调用
- 关于存储过程的ADO调用的一些心得(输出参数,返回值)
- SQL 生成商品订单的存储过程 ,ADO.NET调用存储过程
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- 如何使用 ADO.NET 和 Visual C# .NET 调用带参数的存储过程
- ADO调用存储过程实例讲解
- ASP调用SqlServer存储过程的经典示例(原创)
- 如何使用 ADO.NET 和 Visual C# .NET 调用带参数的存储过程
- sqlserver在调用存储过程中遇到convert转换失败问题的解决方法
- 在SQLServer中调用外部扩展存储过程
- 使用ADO调用存储过程
- sql里得 存储过程和 存储过程与ADO连接
- delphi adodataset1 调用存储过程的方法
- 连接英文字符集的ORACLE和调用存储过程问题及64位服务器连接ORACLE问题
- ADO.NET调用存储过程
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- SQL SERVER 数据库通过连接服务器 调用ORACLE 数据库中的存储过程
- 简单sqlserver 分页存储过程创建 及调用