(postgres)关于查询表的存储过程。解决方法

(postgres)关于查询表的存储过程。解决方法

(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

(postgres)关于查询表的存储过程。解决方法

相关文章:

你感兴趣的文章:

标签云: