我正在使用 Delphi XE 和 FireBird 2.5。
当我将 Active 属性设置为 TRUE 时,尝试使用 TSQLStoredProc 并给出错误“未从查询返回光标”。
一个存储过程的虚拟示例
CREATE PROCEDURE NEW_PROCEDURE
RETURNS(
RDO SMALLINT)
AS
BEGIN
Rdo = 5;
/* Procedure body */
SUSPEND;
END;
我正在使用 Delphi XE 和 FireBird 2.5。
当我将 Active 属性设置为 TRUE 时,尝试使用 TSQLStoredProc 并给出错误“未从查询返回光标”。
一个存储过程的虚拟示例
CREATE PROCEDURE NEW_PROCEDURE
RETURNS(
RDO SMALLINT)
AS
BEGIN
Rdo = 5;
/* Procedure body */
SUSPEND;
END;
作为一种解决方法,类似的查询SELECT * FROM NEW_PROCEDURE
应该可以工作(使用TSQLQuery
)。
我认为您应该使用 ExecProc 方法而不是 Open / Active。只有当您的 SQL 语句返回一个 ResultSet(一组记录),而您的 SQL 语句没有返回时,才应使用将 Active 设置为 true。
问候,
斯特凡