Hola de nuevo, estoy con vb6, winxp y pg 8.4,y tengo esta función:

CREATE OR REPLACE FUNCTION p_bloqueos(nhis integer, valor boolean)
  RETURNS boolean AS
$BODY$
DECLARE
  conta int4;
  ipses varchar;
BEGIN
   ipses:=inet_client_addr()::varchar;
   PERFORM * FROM bloq WHERE nhc=nhis;
    IF NOT FOUND THEN
     insert into bloq (nhc,BLOQUEO,ips) values (nhis,valor ,ipses);
     RETURN FALSE;
   ELSE
        IF items.ips<>inet_client_addr()::varchar then
           RETURN true;
        else
           salida:=FALSE;
       end if;
    END IF;
END;
 $BODY$
  LANGUAGE 'plpgsql' VOLATILE


                                 AQUI ESTA LA LLAMADA DESDE VB6
miv=TRUE
AQUI HAGO LA CONEXION Y DEMAS
With cmd
 .ActiveConnection = datosx
 .CommandType = adCmdStoredProc
 .CommandText = "p_bloqueos" ' Nombre del function
 '.Parameters.Append cmd.CreateParameter("resultado", adBoolean, 
adParamReturnValue)
 .Parameters.Append cmd.CreateParameter("nhis", adInteger, adParamInput, 
Value:=n_historia)
 .Parameters.Append cmd.CreateParameter("valor", adBoolean, adParamInput, 
Value:=miv)
 End With

Set tablas = cmd.Execute() ' tablas es el RecordSet
miv = cmd.Parameters("resultado")
If miv = True Then
    MsgBox "hola"
ElseIf miv = False Then
   MsgBox "adios"
End If

Me guarda bien los valores en la tabla y todo,pero el valor devuelto es donde 
falla.

Siempre me da falso, incluso si cambio en la function de pg todo a TRUE.
Pero si lo hago desde PGADMIN, va bien.

Por lo que se ve, parece ser que es algo en vb6(la forma de llamada, me supongo), pero he consultado con otros colisteros de vb6, a ver dónde esta mi error, pero ellos (que trabajan con SQLSERVER,MYSQL, etc), me comentan que es así como ellos lo hacen... He buscado por internet a ver en que está mal la cosa, pero no encuentro nada, sólo me queda pensar que es algo que tengo mal en la function de pg, que no trabaja bien devolviendo algo con vb6.
Muchas Gracias por la ayuda
Suso
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a