Delphi Postgres 存储过程

标签 delphi postgresql stored-procedures

我正在开发处理存储过程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/

相关文章:

postgresql - 创建或更新未在GORM中返回更新后的值

sql - 比较 PostgreSQL 中两个逗号分隔的列

MySQl 5.6.28 尝试在 select 语句中将变量传递给 limit 时出错

delphi - 寻找 Delphi 库/组件来读取 .Net app.config 文件

string - 在Delphi中解析包含变量名称的字符串

delphi - 从选定的最小化窗口捕获屏幕截图

windows - CGI DLL(Delphi内置)物理路径

postgresql - Postgres IF 变量

MySQL 5 : Trying to Generate Dynamic Sequence IDs as Stored Function or Stored Procedure

mysql - 从存储过程调用 DROP USER,如何扩展输入参数