【发布时间】:2015-03-10 16:19:56
【问题描述】:
我有一个带有这个签名的存储过程:
CREATE PROCEDURE SI_Inteligence(@dt datetime, @actions varchar(6), @FullData cursor varying out)
这个过程返回一个打开的游标。
我需要什么样的组件来捕获它并逐条记录迭代它?它只是存储过程中的一个参数!
procedure DoIt;
var sp: TADOStoredProc;
x: TADODataSet; //?
begin
sp := TADOStoredProc.Create(Self);
sp.Connection := myConnection; //TADOConnection Component
sp.ProcedureName := 'SI_Inteligence';
sp.Parameters.ParamByName('@dt').Value := date;
sp.Parameters.ParamByName('@actions').Value := 'something';
sp.ExecProc;//? Open doesn't return anything
x := TADODataSet.Create(Self);
//How load the cursor??
x.Assign(sp.Parameters.ParamByName('@FullData') as TADODataSet); //crash
end;
现在我需要循环那个光标。我该怎么做?
【问题讨论】:
-
为什么返回游标中的数据而不是结果集?还有哪个版本的Delphi?
-
使用 TADOQuery 和 EXEC 语句
-
这只是一个例子。我真正的 sp 返回 4 个游标。我正在使用 Delphi XE 3
标签: sql-server delphi cursor varying