SERA ALGUIEN CAPAZ DE RESOLVER ESTO? :DEMUESTRALO!
Publicado por LUIGI (16 intervenciones) el 30/12/2002 16:22:38
El Sgte Sp me falla al correrlo en Visual Basic 6,lo q hace el sp es guardar un Nuevo Registro con un Codigo Autogenerado a partir de la tabla TCORRELATIVOS (1ra Transaccion),y Luego Guarda este Registro en TRecord (2da Transaccion) con el Valor del Codigo recibido y un Parametro llamado RUC (q es indice unico) es decir ni el Codigo ni el Campo RUC deben repetirse, LO Q PASA ES Q CUANDO INGRESO UN REGISTRO CON RUC DUPLICADO EL SP EN EL vb6 ME DEVUELVE EMPTY, NO DEBERIA DEVOLVERVE (2627) EL NRO DE ERROR Q GENERO EL SQL SERVER POR LA VARIABLE @@ERROR EN EL RETURN DEL SP?......
De lo q me he dado cuenta es q si le quito la primera transaccion (UPDATE) y mando como parametro el Codigo ya generado anteriormente el SP funciona correctamente!! la PREGUNTA ES PORQ PASA ESO? FALTA ALGO EN EL SP PARA Q FALLE EL RETURN EN EL VB?
CREATE Procedure SP_New_Record @RUC char(11),@Codigo char(5) OUTPUT AS
Declare @Cont Integer Declare @SaveError Integer
Set @SaveError=0
Begin Transaction
Update TCORRELATIVO Set @Cont = CORRE, CORRE = CORRE + 1
SET @SaveError = @@Error
if @SaveError <> 0
Begin Rollback Transaction Return @SaveError End
Set @Codigo = Right('00000'+Convert(VarChar(5),@Cont+1),5)
Insert Into TRecord (Codigo,RUC) Values (@Codigo,@RUC)
SET @SaveError = @@Error
if @SaveError <> 0
Begin Rollback Transaction Return @SaveError End
Commit Transaction
Return 0
De lo q me he dado cuenta es q si le quito la primera transaccion (UPDATE) y mando como parametro el Codigo ya generado anteriormente el SP funciona correctamente!! la PREGUNTA ES PORQ PASA ESO? FALTA ALGO EN EL SP PARA Q FALLE EL RETURN EN EL VB?
CREATE Procedure SP_New_Record @RUC char(11),@Codigo char(5) OUTPUT AS
Declare @Cont Integer Declare @SaveError Integer
Set @SaveError=0
Begin Transaction
Update TCORRELATIVO Set @Cont = CORRE, CORRE = CORRE + 1
SET @SaveError = @@Error
if @SaveError <> 0
Begin Rollback Transaction Return @SaveError End
Set @Codigo = Right('00000'+Convert(VarChar(5),@Cont+1),5)
Insert Into TRecord (Codigo,RUC) Values (@Codigo,@RUC)
SET @SaveError = @@Error
if @SaveError <> 0
Begin Rollback Transaction Return @SaveError End
Commit Transaction
Return 0
Valora esta pregunta


0