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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Mauricio Pulla B.
26/01/2005 - 14:26 | Informe spam
Hola José.

Los CA utilizan la misma conexcion, en algunos casos el tableupdate() me
devuelve falso y al hacer un go(recno()) no brinca el error y termina la
transacción, como si todo estubiera ok.

Si es que tendria que utilizar diferentes conexiones como tendria que
hacerlo?

Saludos.
Mauricio Pulla.


"José G. Samper" escribió en el mensaje
news:
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
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida