sql-server - TAdoDataSet、TAdoStoredProc 多个结果集

标签 sql-server delphi ado

这些组件能够一次性检索多个结果集(例如,从存储过程),并且使用 D5,我可以成功使用 NextRecordSet 从 Sql Server 获取第二个和后续结果集。

但是,只有当我将光标位置指定为 clClient 时,此方法才有效;如果我使用 clServer,我会收到“不返回多个结果集”错误。这是一个固有的限制(例如,由客户端上的 MDac 层强加的)还是可以从服务器端游标成功检索多个记录集?

最佳答案

这是服务器端游标的固有限制。如下所述MSDN link :

Server cursors cannot be used with statements that generate more than one recordset.

This restriction applies to all statements described in Generating Multiple Recordsets. For more information, see Generating Multiple Recordsets. If a server cursor is used with any statement that generates multiple recordsets, an application can return one of the following errors:

  • Cannot open a cursor on a stored procedure that has anything other than a single SELECT statement in it.
  • sp_cursoropen. The statement parameter can only be a single SELECT statement or stored procedure.

关于sql-server - TAdoDataSet、TAdoStoredProc 多个结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135655/

相关文章:

sql-server - 将数据表保存到数据库

sql-server - SQL Server 2014 安装卡住(挂起)或需要很长时间才能完成

delphi - 如何简洁地检查多个编辑框中的任何一个是否已更改为原始值?

arrays - delphi字符串stringlist数组转换

excel - 如何通过 VBA 将一个月的 csv 文件(命名日期)导入 Excel?

sql - ADO 命令参数未传递到存储过程或存储过程 'Ignoring' 参数

sql - 根据特定记录查找所有 parent

sql-server - 列数会影响查询性能吗?

delphi - 为 ListView Delphi XE7 创建自定义项目外观

mysql - 微软 Access : Macro Button to download Table from MySQL