FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Deshacer Post sin transacciones
hola compañeros,
estoy realizando unas modificaciones e inserciones en tablas a través de AdoQuery pero en un momento dado, por ejemplo en caso de error, necesito deshacer los cambios aplicados a las tablas. He intentado hacer servir transacciones pero me muestra el siguiente mensaje de error en el momento de realizar el BeginTrans: 'el proveedor actual no admite transacciones'. Sabeis a que se refiere o cómo evitar el error? Hay algún método alternativo a las transacciones para deshacer cambios en tablas? Gracias por la colaboración |
#2
|
||||
|
||||
Hola miquellg
Si ya hiciste el post y quieres eliminar el ultimo registro, lo mas facil es Abrir la tabla enviarla al ultimo registro y eliminarlo. Código Delphi [-] ADOQuery1.open; ADOQuery1.Last; ADOQuery1.Delete; ADOQuery1.Post; Esto lo puedes hacer en un boton o donde quieras Saludos |
#3
|
||||
|
||||
Pues existen varias posibilidades, una de ellas es utilizar tablas temporales (tablas en memoria) y otra es usar actualizaciones en cache (CacheUpdates).
Te dejo un enlace en donde se comenta como hacer aplicaciones con actualizaciones en cache utilizando los componentes ClientDataSet. ClientDataSet y DataSetProvider en aplicaciones cliente/servidor Saludos |
#4
|
|||
|
|||
Gracias Caral,
pero necesito borrar más de un registro. Por ejemplo, tantas lineas de detalle de factura como haya insertado. Además quisiera deshacer los cambios y no borrar, para que los contadores de documentos no se viesen modificados. |
#5
|
||||
|
||||
Hola
La opcion que propone Hector Randolph me parece interesante, sobre todo la parte de crear una tabla temporal, ya que en cuanto se este seguro de que los datos introducidos son los correctos, estos se pasan a la tabla principal y ya, asi no tienes que hacer modificacion alguna, incluso la transferencia de datos se puede hacer al final del dia. Otra forma de borrar los datos si la primera no te gusta es por medio de un campo fecha, numero o algun dato y asi borraras todo el registro correspondiente a dicho campo. Que motor de base de datos usas ? Saludos |
#6
|
|||
|
|||
Trabajo con un AdoConection y supongo que haré un DELETE a través de una sentencia SQL de todos los registros insertados en las tablas.
|
#7
|
||||
|
||||
Hola
Intenta algo como esto: Código Delphi [-] ADOQuery1.ExecSQL; ADOQuery1.SQL.Add('Delete * from TUTABLA where Factura = '+DBEdit1.text+''; ADOQuery1.open; ADOQuery1.Post; Con esto borraras los registros creados de una factura determinada Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Deshacer/hacer ilimitado | owl | Varios | 3 | 19-05-2006 14:57:47 |
IBDatase Insert Post Edit Post | ariefez | Firebird e Interbase | 4 | 12-10-2005 01:53:04 |
deshacer truncate | Novás | MySQL | 3 | 19-08-2004 11:42:39 |
Deshacer selección en DBComboBox | javiermorales | OOP | 2 | 07-05-2004 19:52:06 |
Crear un deshacer | Zopi | API de Windows | 2 | 13-06-2003 17:53:24 |
|