no, pero de esta forma no sería lo que intentas hacer...

me refería a la definición de la función cuando hablaba del ddl.


el error te esta tirando:
ERROR:  no existe la función spnmcalpromconcepto(integer, integer,
unknown, unknown, unknown, integer, unknown)
si te fijas el segundo parametro es integer, o sea que te está tomando
el paramtero como integer y


CREATE OR REPLACE FUNCTION spnmcalpromconcepto  (
    IN PSiCodEmpr INTEGER,    -- Codigo de Empresa
    IN PDeCodEmpl NUMERIC,        -- Codigo del empleado
    IN PStNroCont CHARACTER VARYING (12),      -- Número de Contrato
    IN PDtFecInic TIMESTAMP,    -- Fecha Inicial del calculo
    IN PDtFecFina TIMESTAMP,    -- Fecha Final del calculo
    IN PSiCodConc SMALLINT,        -- Codigo del concepto a promediar
    IN PStTipProm CHARACTER VARYING  (1),    -- Indicador de si es con
el valor pagado o el valor real
    OUT PDeValProm NUMERIC,  -- Base de liquidacion
    OUT PDePorBase NUMERIC,  -- Porcentaje de Base
    OUT PDeValBase NUMERIC,  -- Base de liquidaci¢n
    OUT PDeValIngr NUMERIC,  -- Valor ingresos totales
    OUT PDeValEgre NUMERIC,  -- Valor egresos totales
    OUT PdeBasFija NUMERIC
    )
    RETURNS record

la función la llamas así:

SELECT P_DeValProm
from spnmcalpromconcepto (1, 2969397, '1', '01/09/2008', '30/11/2008', 1, '1')
       spnmcalpromconcepto(integer, integer, unknown, unknown,
unknown, integer, unknown) <--linea del error

le estas pifiando a los tipos de datos.
además estas utilizando TIMESTAMP y le pasas una fecha común (acordate
que el TIMESTAMP consta de 4 bytes), en todo caso
definilo como DATE
en el tercer parametro lo declaras como character de 12 y le pasas
'1', pasale '000...1' y declaralo como varchar(12).
respecto a las fechas fijate bien.
De alguna se debe poder parsear la consulta en delphi... podrias pasar
como estas llamando la consulta desde el lenguajes?

Asegurate que la función compiló correctamente y que esta visible
desde tu base de datos haciendo \df <nombrefunc> desde el psql




2008/10/29 Erik Ferney Cubillos Garcia <[EMAIL PROTECTED]>:
> Hola Emanuel, gracias, queria preguntarte y lo siento por la ignorancia...
>
> que es la DDL, verás traté de quitarle y ponerle los espacios de la misma
> forma en que declaré la función pero nada,
>
>
>> sacaste los espaciosdespues del nombre (en el ddl y en la consulta) ?
>> creo que una vez tuve ese inconveniente
>
> y bueno hice un select de esta forma
>
> SELECT PDeValProm
> from spnmcalpromconcepto (1 :: INTEGER,
>               2969397 :: NUMERIC,
>                           '1' :: CHARACTER VARYING,
>                           '01/09/2008' :: TIMESTAMP,
>                           '30/11/2008' :: TIMESTAMP,
>                           1 :: SMALLINT,
>                           '1' :: CHARACTER VARYING)
>
> de esta forma me devuelve un valor, pero en DELPHI no puedo hacerlo de esta
> forma, ya que los dos punto me generan error
>
> Gracias
>
> --
> Atentamente,
>
>
> ______________________________
> ERIK FERNEY CUBILLOS GARCIA
> Ing. Desarrollo - Kactus HR
> DIGITAL WARE LTDA.
> Calle 72 No. 12-65 Piso 2
> Bogotá, Colombia
> [EMAIL PROTECTED]
> www.digitalware.com.co
>



-- 
      Emanuel Calvo Franco
    Syscope Postgresql DBA
          BaPUG Member
--
TIP 4: No hagas 'kill -9' a postmaster

Responder a