FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Ejemplo de una Transaccion
hola
podria algun colega del foro tener la amabilidad de escribir un ejemplo sencillo y detallado de como se realiza una transaccion. sucede que tengo que empezar a trabajar con este tipo de operacion para la integridad de los datos y no se como se utiliza. Saludo.
__________________
Ivan Lora http://www.arrobasoft.da.ru Valientes son aquellas personas que triunfan donde otros fracasan. Bienaventurado los que nada esperan porque jamas seran defraudados. |
#2
|
|||
|
|||
Aquí tienes un pequeño ejemplo:
with Query1 do begin Database1.StartTransaction; try ApplyUpdates; Database1.Commit; {inicias la transacción}; except Database1.Rollback; {en caso de error se deshacen los cambios hasta el último commit realizado} raise; end; CommitUpdates; {se actualizan los datos y se borran de la caché si todo va bien} end; end; Aunque yo sé de que va la cosa, pero este ejemplo lo he sacado de la ayuda de delphi, te aconsejo que busques en ella, yo no domino muy bien el ingles, pero con algunas palabras sueltas se sacan buenas conclusiones, saludos.
__________________
No hay vientos favorables para quién no conoce su rumbo. |
#3
|
||||
|
||||
Disculpa CORBATIN, pero voy a cambiar tus traducciones:
Con querys modificables: Código:
procedure TForm1.ApplyButtonClick(Sender: TObject); begin with CustomerQuery do begin Database1.StartTransaction; {Abre la transacción} try ApplyUpdates; {Intenta escribir las modificaciones en la base de datos}; Database1.Commit; {Si el ApplyUpdates es exitoso, cierra la transacción y guarda los datos}; except Database1.Rollback; {Si el ApplyUpdates falla, deshace los cambios}; raise; end; CommitUpdates; {si es exitoso, borra el cache} end; end; Código:
procedure TForm1.ApplyButtonClick(Sender: TObject); begin with CustomerQuery do begin Database1.StartTransaction; {Abre la transacción} try Sql.Text := 'UPDATE....'; ExecSQL; Database1.Commit; {cierra la transacción y guarda los datos}; except Database1.Rollback; {Si Falla, deshace los cambios}; raise; end; end; end;
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#4
|
||||
|
||||
hola
despues de haber visto sus ejemplos que son bastantes satisfactorios, quisiera hacerles otra preguntita. las transacciones solo funcionan con querys, porque yo estoy utilizando tables para insertar y todo eso y querys para las consultas. saludos.
__________________
Ivan Lora http://www.arrobasoft.da.ru Valientes son aquellas personas que triunfan donde otros fracasan. Bienaventurado los que nada esperan porque jamas seran defraudados. |
#5
|
||||
|
||||
Hola,
fijate que las transacciones son a nivel de la BD, de modo que no importa si es un query o una tabla, la que ejecuta la transacción es la Conexión a la que están enlazados los queries o tables. Saludos. |
|
|
|