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])