Ver Mensaje Individual
  #1  
Antiguo 24-10-2008
Avatar de DagariK
DagariK DagariK is offline
Miembro
 
Registrado: mar 2007
Posts: 24
Reputación: 0
DagariK Va por buen camino
Problemas ejecutando funciones de PostgreSQL con Delphi 5 (BDE)

un saludo a todos los foreros,

verán tengo un lio que me tiene fuera de casillas ya, tengo en PostgreSQL algunas funciones, las cuales reciben parametros y retorna algunos otros, a traves de un objeto TSTOREDPROC puedo seleccionar la función que necesito, y éste automáticamente me lista los parámetros con sus respectivos tipos de dato y los identifica si son de entrada o salida.

luego de asignar los valores a cada parámetro le doy EXECPROC, y aqui es donde me lanza el siguiente error

Código:
ERROR NO EXISTE LA FUNCTION spnmcalpromconcepto(integer, double precision, UNKNOWN, 
timestamp without time zone, timestamp without time zone, integer, UNKNOWN)
la verdad desconozco del porque DELPHI interpreta los parámetros de tipo caracter como UNKNOWN, a continuación les dejo el encabezado de mi función.

Código SQL [-]
CREATE OR REPLACE FUNCTION spnmcalpromconcepto  (
 IN P_SiCodEmpr INTEGER,    -- Codigo de Empresa
 IN P_DeCodEmpl NUMERIC,        -- Codigo del empleado
 IN P_StNroCont CHARACTER VARYING,      -- Número de Contrato
 IN P_DtFecInic TIMESTAMP,    -- Fecha Inicial del calculo
 IN P_DtFecFina TIMESTAMP,    -- Fecha Final del calculo
 IN P_SiCodConc SMALLINT,        -- Codigo del concepto a promediar
 IN P_StTipProm CHARACTER VARYING,       -- Indicador de si es con el valor pagado o el valor real  OUT P_DeValProm NUMERIC)  -- Base de liquidacion
AS 
$BODY$
DECLARE


el tipo de dato

CHARACTER VARYING

lo he cambiado por

- CHAR
- VARCHAR

y en ninguno de los casos me ha funcionado,

en delphi por código intenté lo siguiente, pero obtuve el mismo resultado

Código Delphi [-]
if (UpperCase(gStDrvKac) = 'POSTGRESQL ANSI') then  
  begin    
    With StpPromConc_Pgsql Do     begin       close;       StoredProcName := 'spnmcalpromconcepto';
      Params.CreateParam(ftSmallint, 'p_sicodempr', ptInput);
      Params.CreateParam(ftFloat, 'p_decodempl', ptInput);
      Params.CreateParam(ftString, 'p_stnrocont', ptInput);
      Params.CreateParam(ftDateTime, 'p_dtfecinic', ptInput);
      Params.CreateParam(ftDateTime, 'p_dtfecfina', ptInput);
      Params.CreateParam(ftSmallint, 'p_sicodconc', ptInput);
      Params.CreateParam(ftString, 'p_sttipprom', ptInput);
      Params.CreateParam(ftFloat, 'p_devalprom', ptOutput);
    end; // Fin with de Stored procedure
  end


espero puedan ayudarme, ya que he intentado de todo, y por ahora nada ha funcionado,

Gracias

Última edición por DagariK fecha: 27-10-2008 a las 12:36:06. Razón: ajustar el texto
Responder Con Cita