Comprobacion de transaccion

¿Hola Maxisis hace días no te molestaba pero necesito preguntarte algo para ver si me puedes ayudar? Antes cuando iba a insertar algo por medio de una transacción yo hacía lo siguiente
begin transaction
insert into
tableupdate()
if tableupdate(.t.,.f.,"Libros") and tableupdate(.t.,.f."detallelibro")
          messagebox("Se guardo correctamente", 32,"Guardado Satisfactorio")
          endtransaction
else
         messagebox("No se pudo salvar", 32,"ERROR")
         rollback()
Endif
Pero después de que deje de manejar todas las tablas pegadas al form me da un error que dice que la función requiere buffering por lo cual quite el table update y el if tableupdate del chequeo y guarda bien, pero está mal ya que nunca va a hacer rollback si algo falla y quería saber de que otra forma se hace para poder chequear si se ejecutó la transacción algo como (if transaction) o no se !

1 Respuesta

Respuesta
1
Perdón por la demora en contestar.
Te cuento: no estoy muy acostumbrado a usar este mecanismo, pero por lo que estuve viendo, te hace falta activar el buffering. Eso lo hacés con CURSORSETPROP.
CURSORSETPROP("Buffering", 5, "libros")
CURSORSETPROP("Buffering", 5, "detallelibros")
Pero para que esto funcione, las tablas tienen que pertenecer a una base de datos, o sea, no deben ser tablas libres.
Este seteo tenés que hacerlo al principio de tu código, después de abrir la tabla) y antes de BEGIN TRANSACTION.
Además estuve viendo que tenés que usar SET MULTILOCKS ON, aunque no vi cuál es el motivo.
Espero te sirva. Cualquier cosa me avisás. Suerte !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas