Hola de nuevo, obtener un campo desde vb una vez hecha la consulta, no hay problema, el problema se me presenta si tengo que devolver, como es el caso, un "T", o "F" o "0" o "1" o el valor que sea, pero que no este relacionado con la tabla o nada que se le parezca. De hecho, lo primero que hice antes de devolver T o F, fue comprobar si estaba o no ingresado uno de esos datos, ahí no tengo problema en llamar-asignar elcampo a una variable, no sé si me explico.
Un saludo
Suso


El 7 de septiembre de 2009 10:17, suso <jlcu...@terra.es <mailto:jlcu...@terra.es>> 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

--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
   (envía "unregister TuDirecciónDeCorreo" a majord...@postgresql.org)

Responder a