El 7 de septiembre de 2009 10:17, suso <[email protected]> escribió:

> Hola Cesar, de esa manera no obtengo el valor de retorno, puedo obtener
> cualquier datos del recordset, pero no un return false o true o el que sea,
> es correcto?
>

No, la funcion se delara por ejemplo

CREATE OR REPLACE FUNCTION cl_paciente_inserta(mpc_cod character varying,
.....)
  RETURNS bigint AS
$BODY$

BEGIN
    --***************************************
    --INSERTA     LOS REGISTROS
    --TABLA     PACIENTE
    --***************************************
    INSERT INTO pacientes(
        pc_cod, ....
        )
    VALUES (
        mpc_cod, ....
        );

    IF NOT FOUND THEN
        RAISE EXCEPTION 'Error al Tratar de Insertar un NUEVO Registro
((%))', mpc_nombre;
        RETURN 0;
    END IF;

    --DEVUELVE EL CODIGO DE LA PERSONA INGRESADA, QUE LE ASIGNA EL SISTEMA

    RETURN  currval('pacientes_pc_id_seq');

END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;

y de visual basic la llamas

>
>>
>> sql = "SELECT * FROM cl_paciente_inserta(parametro1, parametro2,...)
>>
>> Set RsTemp = New ADODB.Recordset
>>
>>    RsTemp.Open sql, Base, adOpenKeyset, _
>>            adLockOptimistic, adCmdText
>>
>>    If Not (RsTemp.EOF And RsTemp.BOF) Then variablequetomaRetorno =
>> rstemp(0)
>>
>
>>
>>    Set RsTemp = Nothing
>
>


-- 
Sin más que decir se despide de Usted, muy atentamente

Cesar Erices Vergara
Ingeniero en Gestión Informática
Analista de Sistema

Santiago - Chile

Responder a