Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PostgreSQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=42)
-   -   ayuda para conectar delphi con postgres (https://www.clubdelphi.com/foros/showthread.php?t=84178)

pame 18-09-2013 02:49:38

ayuda para conectar delphi con postgres
 
Buenas noches
necesito que me ayuden, ya consegui mostrar una funcion setoff record de postgres a delphi.
En postgres realice este procedimiento:

Código SQL [-]
CREATE OR REPLACE FUNCTION eoq(fi date, ff date)
  RETURNS SETOF record AS
$BODY$
declare
_resultado record;
begin
for _resultado in 
SELECT
    DISTINCT a.cod_producto,
    p.nombre,
    SUM(a.cantidad::float) / ($2::date - $1::date)             AS demanda,
 sqrt((2 * 75 * (SUM(a.cantidad::float) / COALESCE ($2::date - $1::date,1))) / (COALESCE(p.precio_unid * 0.17,1))) AS Q,
(SUM(a.cantidad::float) / ($2::date - $1::date)) /(sqrt((2 * 75 * (SUM(a.cantidad::float) / COALESCE ($2::date - $1::date,1))) / COALESCE(p.precio_unid * 0.17,1)))  AS N,

    (sqrt((2 * 75 * (SUM(a.cantidad::float) / COALESCE ($2::date - $1::date,1))) / COALESCE(p.precio_unid * 0.17,1)))/
    (SUM(a.cantidad::float) / ($2::date - $1::date)) as T,   
     Stddev(a.cantidad) * sqrt(4)            AS Desv,
    (Stddev(a.cantidad) * sqrt(4)) * 1.28   AS ISS,
    (SUM(a.cantidad) / COALESCE ($2::date - $1::date,0)) * 4 +(((Stddev(a.cantidad) * sqrt(4)) * 1.28 )) AS R

  FROM detalle_venta a,  producto p, factura_vent fv


  WHERE ((p.cod_producto = a.cod_producto) AND (a.cod_fact_vent = fv.cod_fact_vent) AND
         (fv.fecha BETWEEN $2::date AND $1::date))

 GROUP BY a.cod_producto, p.nombre, p.precio_unid loop
return next _resultado;
end loop;
end;
  $BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000;
ALTER FUNCTION eoq(date, date) OWNER TO postgres;

Y en delphi llame a este procedimiento mediante un query donde coloque lo siguiente:

Código Delphi [-]
select * from eoq(:fec_inicio,:fec_fin)as
(cod_producto character varying,nombre character varying,
demanda float ,Q float,N float,T float,Desv float,
ISS float,R float);

Pero cuando hago correr mi programa en delphi para mostrar el resultado en un dbgrid no muestra nada, cual puede ser mi error?
Ya probe el procedimiento de postgres y funciona perfectamente.


gracias.

gatosoft 19-09-2013 01:42:24

Creo que el problema es que debes ser más específico en cuanto al registro de salida... no basta con setof record...

debes definir un tipo de salida y tu funccion debe retornar un setof "tu_tipo"

Código SQL [-]
create type MyTipo as (Campo1 int, Campo2 int8);
....
create function Myfuncion() returns setof MyTipo as....

pame 19-09-2013 05:47:24

ayuda para conectar delphi con postgres
 
Hola gracias por responder, pero creo que a lo que te refieres, es a este query en delphi cuyo codigo llama a la funcion en postgres y creo debería botar algún resultado en un dbgrid
Código Delphi [-]
select * from eoq(:fec_inicio,:fec_fin)as
(cod_producto character varying,nombre character varying,
demanda float ,Q float,N float,T float,Desv float,
ISS float,R float);

si fueras mas especifico con las funciones que coloque en este foro, es decir con mis propios ejemplos que coloque, agradecería toda la ayuda que me puedan brindar.

gracias


La franja horaria es GMT +2. Ahora son las 08:19:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi