PRODECIMIENTOS ALMACENADOS

MARYYBEL
14 de Noviembre del 2005
URGENTE
Tengo un procedimiento almacenado al cual le hago ingresos y salidas de nuevos registros desde visual, ahora
yo quiero que ese procedimiento me diga cuadno se produce un error por ejemplo tengo un producto con el codigo avrs01
y el usuario intenta ingresar un producto con ese mismo codigo entonces se producira un error por la restriccion de la primary key
y mi programa de visual se "colgara" lo que yo deseo es capturar ese error y de acuerdo al error que me retorne pues
verificarlo desde visual y dar un mensaje al usuario pero sin que mi programa se cuelgue el error lo capturo asi desde sql
select @@error = @variableCapturaError
y bueno no se como capturarlo desde visual
a ver si me pueden ayudar se los agradeceria
BESOS

mvallejos
14 de Noviembre del 2005
Lo que podés hacer, es trabajar dentro del SP con las variables
de entorno Ret y Txt.
Por ejemplo

<Instrucciones SQL>
If @@Error <> 0
Begin
Select Ret = <valor>,Txt =<mensaje>
Return <Valor>
End if


Cuando termina el SP

Select Ret = 0,Txt =''
Return 0


Desde VB, ejecutas el SP con un ADODB.Command a trav{es de un recordset

Set Rs = Cmd.Execute

Ese recordset, va a tener una sola fila con 2 campos, la que correspoinde a Ret y la de txt.

Saludos


MARYYBEL
14 de Noviembre del 2005
PERO EN VISUAL COMO LE PONGO
SERIA ASI?
RS.FIELDS O TIENE OTRA PROPIEDAD
POR NUE POR EJEMPLO SI DESEARA MOSTRAR EL NUMERO QUE ME AROJA ESE ERROR EN UNCA CAJA DE TEXTO COMO SERIA TXT1.TEXT=RS.FIELDS ???
GRACIAS

mvallejos
14 de Noviembre del 2005
Set R = Cmd.Execute
If R.Fields(0).Value <> 0 Then
Text1.text = R.Fields(1).Value
end if

Si el primer campo (Ret) da distinto de 0, muestro el segundo campo con la descripcion del error (Txt)

Saludos