TAdoDataSet,TAdoStoredProc多个结果集

时间:2013-08-08 20:37:40

标签: sql-server delphi ado

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

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

1 个答案:

答案 0 :(得分:3)

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

  

服务器游标不能与生成多个语句的语句一起使用   一个记录集。

     

此限制适用于生成中描述的所有语句   多个记录集。有关更多信息,请参阅Generating Multiple Recordsets。如果服务器游标与任何语句一起使用   生成多个记录集,一个应用程序可以返回其中一个   以下错误:

     
      
  • 无法在存储过程中打开游标,该存储过程中只有一个SELECT语句。
  •   
  • sp_cursoropen。 statement参数只能是单个SELECT语句或存储过程。
  •