FoxPro/Visual FoxPro - Transaction

 
Vista:

Transaction

Publicado por Alberto (10 intervenciones) el 25/04/2005 22:55:58
Hola soy nuevo en este foro pero llevo mucho documentadome en esta pagina

Bueno, tengo una duda con foxpro sobre las transacciones
programe un boton el boton "Nuevo" de esta Forma

THISFORM.TXTApellido.ReadOnly= .F.
THISFORM.TXTCodclie.ReadOnly= .F.
THISFORM.TXTNombre.ReadOnly= .F.

This.Enabled= .F.
THISFORM.COMmand2.Enabled= .T.
THISFORM.COMmand3.Enabled= .T.

SELECT registro

x=0
reg=RECNO()
CALCULATE MAX(codclie) TO x

IF x<>0
x=x+1
GO reg
ELSE
x=1
ENDIF

BEGIN TRANSACTION
SCATTER MEMVAR blank
END TRANSACTION

codigo=x

thisform.txtNombre.SetFocus
thisform.Refresh
INSERT INTO registro FROM memvar
thisform.Refresh

pero me da error con el "Retroceder" me dice que falta el begin transaction
pero le pongo eso no pasa nada...

aki el codigo

Retroceder:
THIS.Enabled=.F.
THISFORM.COMMAND1.Enabled=.T.
THISFORM.COMMAND2.ENABLED=.F.

ROLLBACK

GO BOTTOM
thisform.Refresh

Espero que me puedan ayudar
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Transaction

Publicado por Roman Suazo (2723 intervenciones) el 25/04/2005 23:18:30
Es logico ya que con el END TRANSACTION practicamente despues del
BEGIN TRANSACTION te cierra la transaccion y nunca vas a poder realizar el ROLLBACK (el rollback tendria que ir entre las dos sentencias por decirlo de una forma)

Ahora, las transacciones en este caso (por lo menos asi parece) no te ayudan ya que estas sirven al ejecutar un TABLEUPDATE, es decir, si un tableupdate no actualizo completamente los registros (a veces solo una porcion de los registros se actualiza) por algun error en los datos, entonces puedes deshacer lo que si se haya salvado, es decir, se utilizan para asegurarte que todo se llevo a cabo bien en caso contrario deshacer todo lo que se hizo...no tiene sentido usar una transaccion con un scatter...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Transaction

Publicado por Alberto (10 intervenciones) el 26/04/2005 07:04:15
Hola
Ya corregi el error, no tenia bien claro el uso de las transacciones...
estoy aprendiendo ah usar foxpro tipo cliente - servidor... es como una practica lo que estoy haciendo...
Gracias Roman

Tengo una duda; como evaluo si ay una transacion abierta, ejecutandose?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Transaction

Publicado por Alberto (10 intervenciones) el 26/04/2005 21:17:12
Es que necesito evaluarlo yo creo que en el destroy porque aveces el usuario intenta cerrar pero al tener una transacion abierta no puede, estaria bien hacerlo ay?

otra duda que me surgio; cuando tengo una transacion abierta y vuelvo a ejecutar "Begin Transaction" la nueva transaccion se anida a la anterior o es independiente?
Gracias, Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Transaction

Publicado por Roman Suazo (2723 intervenciones) el 26/04/2005 23:34:03
Es que necesito evaluarlo yo creo que en el destroy porque aveces el usuario intenta cerrar pero al tener una transacion abierta no puede, estaria bien hacerlo ay?

ahorita no me acuerdo de la secuencia de los eventos. Creo que esta bien siempre y cuando se realize antes de cerrar las tablas...seria facil checar la secuencia...OJO, las transacciones deben ser cortas por lo tanto creo que vas por mal camino...Recuerda abres la transaccion antes de grabar.... y la cierras inmendiatamente segun lo que te devuelva el TABLEUPDATE, haces el ROLLBACK o ENDTRANSACTION...Revisa la ayuda para qeu sepas porque las transacciones deben ser cortas...

otra duda que me surgio; cuando tengo una transacion abierta y vuelvo a ejecutar "Begin Transaction" la nueva transaccion se anida a la anterior o es independiente?

la ultima transaccion que se abra es la primera que se cierra...asi que ten cuidado en como pones tu codigo. entonces podriamos deducir que si se anidan...
Solo haz los experimentos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Transaction

Publicado por Alberto (10 intervenciones) el 26/04/2005 23:50:36
Gracias Roman, me aves depejado varias dudas, voy a seguir estudiando el asunto

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar