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