Problemas con BeginTrans

24/09/2003 - 20:16 por Abraham Uribe | Informe spam
Saludos a Todos!..

Tengo el siguiente problema tengo un metodo grabar clientes en el cual
utilizo una transaccion, este metodo recibe como parametro un recordset,
Despues de iniciada la transaccion (Begin) realizo el recordset.update, pero
este update no espera el commit de la transaccion sino que actualiza la
tabla inmediatamente.
El recorset es dinamico con bloqueo optimista.

este es el codigo..
ah! Tambien esto manejando dos objetos COM. en uno de ellos tengo todos los
metodos que son comunes entre las diferentes aplaciones que se van a
desarrollar, como por ejemplo el conectar a la base de datos el consultar,
grabar maestros etc.. El segundo COM es el que contiene los metodos
especificos de la aplicacion que se trabajando, para poder utilizar los
metodos del COM comun en el COM propio de la aplicacion cree una propiedad y
a esta le llevo una instacia del COM comun..
(goCNSyscar.oCNComun.ComenzarTransaccion())

Desde ya Muchas Gracias por las sugerencias que me puedan dar..

Abraham Uribe
Medellin Colombia

PARAMETERS poRecordSet
llError = .F.
IF goCNSyscar.oCNComun.ComenzarTransaccion()
TRY
poRecordSet.UPDATE
CATCH TO loErrorRs
llError = .T.
goCNSyscar.oCNComun.NumeroError = loErrorRs.errorno
goCNSyscar.oCNComun.DescripcionError = loErrorRs.MESSAGE
ENDTRY
IF llError = .T.
IF NOT goCNSyscar.oCNComun.DevolverTransaccion()
poRecordSet.CLOSE
RETURN .F.
ENDIF
ELSE
IF NOT goCNSyscar.oCNComun.ConfirmarTransaccion()
poRecordSet.CLOSE
RETURN .F.
ENDIF
ENDIF
RETURN NOT llError
ELSE
poRecordSet.CLOSE
RETURN .F.
ENDIF

*-*-**-*-*-*-*-*-*-*
Este es el metodo COMENZAR TRANS
lError = .F.
TRY
THIS.conexion.BeginTrans
CATCH TO loErrorRs
lError = .T.
THIS.NumeroError = loErrorRs.errorno
THIS.DescripcionError = loErrorRs.MESSAGE
ENDTRY
RETURN NOT lError

*-**-*-
Este es el metodo CONFIRMAR TRANS
lError = .F.
TRY
THIS.conexion.CommitTrans
CATCH TO loErrorRs
lError = .T.
THIS.NumeroError = loErrorRs.errorno
THIS.DescripcionError = loErrorRs.MESSAGE
ENDTRY
RETURN NOT lError

*-*-*-*-*-*
Este es el metodo devolver TRANS
lError = .F.
TRY
THIS.conexion.RollBackTrans
CATCH TO loErrorRs
lError = .T.
THIS.NumeroError = loErrorRs.errorno
THIS.DescripcionError = loErrorRs.MESSAGE
ENDTRY
RETURN NOT lError
 

Leer las respuestas

#1 Abraham Uribe
25/09/2003 - 18:43 | Informe spam
Saludos a Todos!..



"Abraham Uribe" escribió en el mensaje
news:

Preguntas similares