(postgres)关于查询表的存储过程。
vc++客户端 (ADO连接) 我想在表am_subsys中查询所有记录并可得到各字段的值。存储过程如下。
am_subsys结构:
CREATE TABLE am_subsys
(
id int4 NOT NULL DEFAULT nextval( 'am_subsys_id_seq '::regclass),
typeid int4 NOT NULL,
name varchar(100) NOT NULL,
description varchar(100),
CONSTRAINT pk_am_subsys PRIMARY KEY (id)
)
执行SQL查询
CREATE OR REPLACE FUNCTION ua_func_query_subsys() RETURNS SETOF am_subsys AS $$
SELECT * FROM am_subsys ORDER BY am_subsys.id;
$$ LANGUAGE SQL;
执行:Res.Open( "SELECT ua_func_query_subsys() " )
但是得到的字段只有 "ua_func_query_subsys "
ADO中得到的字段值是(3,1, "www ", "www ") 。但是我想得到每个字段的值,而不是字段拼接出来的一个字符串。
我按照如下方式可以得到:
Res.Open( "select name(ua_func_query_subsys()), typeid(ua_func_query_subsys()))
但是函数ua_func_query_subsys()是不是执行了两遍啊,是否还有其他方式只执行一次查询而可以得到各个字段的值。
谢谢!
------解决方案--------------------改为:Res.Open( "SELECT * from ua_func_query_subsys() " ),就OK