1
我正在德爾福應用程序處理存儲過程。我創建存儲過程插入語句,它對我的應用程序工作正常。 現在,我想爲select語句創建相同的語句。德爾福Postgres存儲過程
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.I精細想在我的Delphi應用程序訪問此存儲過程。 我的代碼是:
with StoredProc2 do begin
StoredProcName :='select_sp';
ExecProc;
Edit5.Text:=ParamByName('list_all_firstname').AsString ;
end;
但我得到的錯誤說「找不到對象」。如何做我訪問德爾福存儲過程返回值?
如果StoredProc2是TDataSet的後裔,你將不得不使用FieldByName。使用TDataset後代ParamByName用於傳遞給查詢/ storedproc的參數,而不是由它返回的結果。 –