Transaccion segura CAD Ado SQl Sever

25/01/2005 - 18:08 por Mauricio Pulla B. | Informe spam
Tengo el siguiente codigo para hacer una transaccion.

TRY
.oCnn.Open()
liTransaccion = .oCnn.BeginTrans()

&&Secuencia
UPDATE RsSecuencia SET iSecuencia = iSecuencia + 1
&&Insert Nuevo periodo
INSERT INTO RsPeriodoNew (iPeriodoId, cYear, cMonth, nQuincena,
iIdUserAdd) VALUES (tiPeriodoNew, tcYear, tcMonth, 1, tiIdUserAdd)
&&Pagos
INSERT INTO RsPagoNew (iIdPeriodo, iIdEmpleado, cIdConcepto);
Values(tiPeriodoNew, liEmpleadoId, lcIdConcepto)

SELECT RsSecuencia
llAnswer = TABLEUPDATE(.T., .F., 'RsSecuencia')
Go (Recno())

SELECT RsPeriodoNew
llAnswer = TABLEUPDATE(.T., .F., 'RsPeriodoNew')
Go (Recno())

SELECT RsPagoNew
llAnswer = TABLEUPDATE(.T., .F., 'RsPagoNew')
Go (Recno())
.oCnn.CommitTrans()

CATCH TO loException
IF liTransaccion > 0
.oCnn.RollbackTrans()
ENDIF
llAnswer = .F.
.Errorregistra(loException)
FINALLY
IF .oCnn.State > 0
.oCnn.Close()
ENDIF
ENDTRY
RETURN llAnswer
ENDWITH
la tabla secuencias no se actualizaba por un campo nulo pero el resto de
tablas si, el valor de retorno era verdadero
-Como puedo hacer una transaccion segura?. ya que el CAD me devuelve .t.
actualize o no
-Supongo que en la version 9.0 es bug del CAD esta areglado.

VFP 8.0 Sp1 WPro 2000 Sp 4 y Sql Server, mdac 2.8
Saludos.
Mauricio Pulla
 

Leer las respuestas

#1 José G. Samper
26/01/2005 - 04:17 | Informe spam
Hola como estas, la pregunta de las 7000 lochas. Los CA estan usando la
misma conexion?

Saludos


________________________
José G. Samper C.
MCAD/MCSD/MCDBA
http://www.FoxyNet.Net


"Mauricio Pulla B." escribió en el mensaje
news:
Tengo el siguiente codigo para hacer una transaccion.

TRY
.oCnn.Open()
liTransaccion = .oCnn.BeginTrans()

&&Secuencia
UPDATE RsSecuencia SET iSecuencia = iSecuencia + 1
&&Insert Nuevo periodo
INSERT INTO RsPeriodoNew (iPeriodoId, cYear, cMonth, nQuincena,
iIdUserAdd) VALUES (tiPeriodoNew, tcYear, tcMonth, 1, tiIdUserAdd)
&&Pagos
INSERT INTO RsPagoNew (iIdPeriodo, iIdEmpleado, cIdConcepto);
Values(tiPeriodoNew, liEmpleadoId, lcIdConcepto)

SELECT RsSecuencia
llAnswer = TABLEUPDATE(.T., .F., 'RsSecuencia')
Go (Recno())

SELECT RsPeriodoNew
llAnswer = TABLEUPDATE(.T., .F., 'RsPeriodoNew')
Go (Recno())

SELECT RsPagoNew
llAnswer = TABLEUPDATE(.T., .F., 'RsPagoNew')
Go (Recno())
.oCnn.CommitTrans()

CATCH TO loException
IF liTransaccion > 0
.oCnn.RollbackTrans()
ENDIF
llAnswer = .F.
.Errorregistra(loException)
FINALLY
IF .oCnn.State > 0
.oCnn.Close()
ENDIF
ENDTRY
RETURN llAnswer
ENDWITH
la tabla secuencias no se actualizaba por un campo nulo pero el resto de
tablas si, el valor de retorno era verdadero
-Como puedo hacer una transaccion segura?. ya que el CAD me devuelve .t.
actualize o no
-Supongo que en la version 9.0 es bug del CAD esta areglado.

VFP 8.0 Sp1 WPro 2000 Sp 4 y Sql Server, mdac 2.8
Saludos.
Mauricio Pulla


Preguntas similares