On 10/29/08, Erik Ferney Cubillos Garcia <[EMAIL PROTECTED]> wrote:
>
> 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
>
[...]
>
> ERROR:  no existe la función spnmcalpromconcepto(integer, integer, unknown,
> unknown, unknown, integer, unknown)
> LINE 2: from spnmcalpromconcepto (1, 2969397, '1', '01/09/2008', '30...
>              ^
> HINT:  Ninguna función coincide en el nombre y tipos de argumentos. Puede
> desear agregar conversión explícita de tipos.
>

es porque el penultimo parametro es un smallint pero postgres al ver
el 1 que pasaste de parametro piensa que es un integer, tienes que
hacer un casteo para eso...
si los dos puntos te dan error quiza puedas:
- poner el select en una cadena de caracteres y con alguna sentencia
de delphi mandarlo a ejecutar...
- o preparar el query desde delphi (estoy adivinando, al hacer eso
otros lenguajes permiten enviar parametros indicando el tipo de dato)?
- o por ultimo, declaras el parametro como integer y en la funcion
verificas que el valor no sea mayor al de un smallint

-- 
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
    (envía "unregister TuDirecciónDeCorreo" a [EMAIL PROTECTED])

Responder a