Hola
Estoy trabajando con VFP 6.0, con la tecnología Paso a través de SQL.
Tengo problema con las transacciones
Este es el codigo que tengo
hConn = SQLConnect("ConServidorE3Aux","","") abro la conexión con el
servidro
sqlsetprop(hConn,'Transactions',2) abro el manejo de transacciones
manuales
la=.t. esta variable me va a indicar si las operaciones se realzaron
correctamente o no
SQLExec(hConn,lcquery) ejecuto la operación A, puede ser update, un
delete
SQLExec(hConn,lcquery) ejecuto la operación B, puede ser update, un
delete
SQLExec(hConn,lcquery) ejecuto la operación C, puede ser update, un delete
La variable la si algo salio sale mal en alguna operación la pongo en
.f. .
if la=.t. si todo estuvo ok
sqlcommit(hconn)
else si algo salio mal
sqlrollback(hconn)
endif
bien, hasta ahí siempre funciona todo bien.
Si por alguna razon el programa produce algun error y se cuelga(no llega a
la parte del if la=.t) las operaciones que hizo hasta el momento de
colgarse el programa las deje efectiva,
Probe con el sgte codigo y efectivamente es asi, cuando encuentra el
return, se val del codigo y las operaciones A y B las ejecuta y la C no
hConn = SQLConnect("ConServidorE3Aux","","") abro la conexión con el
servidro
sqlsetprop(hConn,'Transactions',2) abro el manejo de transacciones
manuales
la=.t. esta variable me vaa indicar si las operaciones se realzaron
correctamente o no
SQLExec(hConn,lcquery) ejecuto la operación A, puede ser update, un
delete
SQLExec(hConn,lcquery) ejecuto la operación B, puede ser update, un
delete
reutrn
SQLExec(hConn,lcquery) ejecuto la operación C, puede ser update, un delete
La variable la si algo salio mal en alguna operación la pongo en .f. .
if la=.t. si todos estuvo ok
sqlcommit(hconn)
else si algo salio mal
sqlrollback(hconn)
endif
como manejo esos casos?, en que la ejecucion nunca llega ni al commit ni
al rollback, pero por defecto ejecuto el commit.
Gracias
-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co
PortalFox - NNTP Forum Gatewa
Leer las respuestas