FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Función de Postgres que devuelve conjunto de registros
Hola a todos:
Estoy intentando recuperar un conjunto de registros que se obtienen a través del llamado de una función de postgres. Trabajo en Delphi 7 y el acceso a Posgres lo tengo con ADO. A traves de los componentes TADOStoreProcedure en tiempo de diseño le doy valor a los parametros de la funcion, y al poner Active en true, no me da problema, pero el DBGrid que tengo en mi formulario asociado al DataSource que a su vez esta relacionado con el TADOStoreProcedure sólo me muestra un registro con un campo que tiene como valor <unnamed portal 1>. Alguien podria darme una idea de cómo puedo obtener los registros para mostrarlos en el DBGrid? Muchas gracias. Espero que alguien me pueda dar una idea. Saludos, Reina |
#2
|
||||
|
||||
puedes colocar algo de codigo?
__________________
Dulce Regalo que Satanas manda para mi..... |
#3
|
|||
|
|||
Hola:
La funcion de Postgres: CREATE OR REPLACE FUNCTION "public"."card_for_emission" (pbin varchar, ptype integer, puser_id varchar, out result_table "pg_catalog"."refcursor") RETURNS "pg_catalog"."refcursor" AS $body$ declare bankpid integer; seq_pid integer; begin select bank_pid into bankpid from bin_def where bin_def.bin_id = pbin; if bankpid is null then raise exception 'Invalid Bin for get card to emission'; end if; if ptype = 1 then -- People Card TABLE open result_table for select distinct c.cardnumber, p.name, p.last_name, p.last_name2, c.exp_date, c.card_type from card c inner join cardholder ch on c.cardholder_pid = ch.cardholder_pid inner join client cl on cl.client_pid = ch.client_pid inner join bank b on b.bank_pid = cl.bank_pid inner join people p on p.people_pid = cl.people_pid inner join bin_def bd on bd.bank_pid = b.bank_pid where c.status = 1 and b.bank_pid = bankpid and c.printlot = 0; insert into record_log (log_timestamp, log_table, log_table_pid, log_user, log_action, details, log_errorcode) values(CURRENT_TIMESTAMP(2), 'card', NULL, puser_id, 4 , 'select card for PRINT FRONT: status=1' || ' bank_pid='|| bankpid || ' printlot= 0', null); end if; end; $body$ LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER; En Delphi tengo el siguiente codigo en el Create del formulario principal: with DM do begin dsPrintFront.Dataset := spPrintFront; MEmisor_Connection.Open; spPrintFront.Parameters.ParamByName('pbin').Value := '977000'; spPrintFront.Parameters.ParamByName('ptype').Value := 1; spPrintFront.Parameters.ParamByName('puser_id').Value := 'reina'; spPrintFront.Prepared := True; spPrintFront.Open; end; En dicho formulario tengo un DBGrid y en tiempo de diseño puse DataSource = DM.dsPrintFront Saludos, Reina |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cuantos registros devuelve una consulta | kizé | MySQL | 1 | 25-10-2010 10:13:30 |
Como Usar una Funcion que devuelve un escalar | Iceman | MS SQL Server | 3 | 29-07-2008 21:54:12 |
(DBExpress)la función IsIndexField del TSQLQuery siempre me devuelve falso | amezeta32 | Conexión con bases de datos | 0 | 17-08-2006 00:20:46 |
TIBQuery no devuelve todos los registros | rochi | SQL | 0 | 27-02-2005 19:25:49 |
funcion que devuelve el tipo de dato de un variant | samame | OOP | 3 | 08-07-2004 16:02:30 |
|