我正在开发处理存储过程的Delphi 应用程序。我为插入语句创建了存储过程,它对我的应用程序运行良好。 现在,我想为 select 语句创建相同的语句。
CREATE TYPE list_all_firstname AS ( first_name character varying);
CREATE FUNCTION select_sp()
RETURNS SETOF list_all_firstname AS
$$
DECLARE
rec record;
BEGIN
FOR rec IN (SELECT first_name FROM person) LOOP
RETURN NEXT rec;
END LOOP;
END;
$$ LANGUAGE plpgsql;
电话是:
SELECT * FROM select_sp();
到此为止,postgres 中的一切都很好。我想在我的 delphi 应用程序中访问这个存储过程。 我的代码是:
with StoredProc2 do begin
StoredProcName :='select_sp';
ExecProc;
Edit5.Text:=ParamByName('list_all_firstname').AsString ;
end;
但是我收到错误消息说“找不到对象”。我如何访问 delphi 中存储过程的返回值??
最佳答案
我得到了答案。.找不到对象是 BDE 错误... 接下来是访问值,无需使用存储过程组件。我们可以使用 TQuery,如下所示...:
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM select_sp()');
Query1.Active := True;
for i:=0 to Query1.RowsAffected-1 do
begin
sval:=Query1.FieldByName('first_name').AsString;
ShowMessage(sval);
Query1.Next;
end;
关于Delphi Postgres 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10779794/