Estamos migrando o banco de dados da empresa de Acces 97 para Postgres 8.0.3
num servidor com Red Hat.

O código do programa está em Vb5... E por hora não temos a possibilidade de
mudarmos tudo de uma unica vez, estamos migrando por partes(Como Jack).

Porém nesta migração estou com uma duvida nestes códigos que segue abaixo:

DROP FUNCTION dados_comander_01(text,int,int,date,date);
DROP TYPE grid_os;
CREATE TYPE grid_os AS (p1 text,p2 text,p3 text,p4 text,p5 double precision,
p6 text,p7 int);

CREATE FUNCTION dados_commander_01(text,int,int,date,date) RETURNS SETOF
grid_os AS $$

SELECT ordem_form.num_of,
clientes.nome_clie||lpad('',30)||to_char(clientes.id_clie,'9999'),
vendedores.nome_vende, ordem_form.desc_prod1, ordem_form.quan_impe,
to_char(ordem_form.prec_prat,'99990D99'), ordem_form.id_of
FROM (ordem_form INNER JOIN clientes ON ordem_form.id_clie =
clientes.id_clie) INNER JOIN vendedores ON ordem_form.id_vend =
vendedores.id_vende
WHERE clientes.nome_clie LIKE '%'||$1||'%' AND ordem_form.data_assi_of >= $4
AND ordem_form.data_assi_of <= $5 and
ordem_form.id_etapa=$2 and ordem_form.tipo_fatu=$3
ORDER BY ordem_form.num_of;

$$ LANGUAGE SQL;



DROP FUNCTION pl_dados_comander_01(text,int,int,date,date);
CREATE FUNCTION pl_dados_commander_01(text,int,int,date,date) RETURNS SETOF
record  AS $$

DECLARE retvar record;
BEGIN
    FOR retvar IN
     SELECT ordem_form.num_of,
clientes.nome_clie||lpad('',30)||to_char(clientes.id_clie,'9999'),
vendedores.nome_vende,
        ordem_form.desc_prod1, ordem_form.quan_impe,
to_char(ordem_form.prec_prat,'99990D99'), ordem_form.id_of
     FROM     (ordem_form INNER JOIN clientes ON ordem_form.id_clie =
clientes.id_clie) INNER JOIN vendedores
        ON ordem_form.id_vend = vendedores.id_vende
     WHERE     clientes.nome_clie LIKE '%'||$1||'%' AND
ordem_form.data_assi_of >= $4 AND ordem_form.data_assi_of <= $5
            and ordem_form.id_etapa=$2 and ordem_form.tipo_fatu=$3
     ORDER BY ordem_form.num_of
         LOOP
           RETURN NEXT retvar;

    END LOOP;
    RETURN;
END

$$ LANGUAGE plpgsql;

O dados_comander_01funciona perfeitamente, e a segunda pl_dados_comander_01
não funciona, só que teoricamente as duas deveriam funcionar da mesma
maneira.

Então como fazer para que a pl_dados_comander_01 sem ter que declarar um
tipo?

Bem de já agradeco.

-- 
Gabriel Bortolotto
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a