Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-09-2006
miquellg miquellg is offline
Miembro
 
Registrado: abr 2005
Posts: 46
Poder: 0
miquellg Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 28-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 28-09-2006
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 28-09-2006
miquellg miquellg is offline
Miembro
 
Registrado: abr 2005
Posts: 46
Poder: 0
miquellg Va por buen camino
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.
Responder Con Cita
  #5  
Antiguo 28-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
Responder Con Cita
  #6  
Antiguo 29-09-2006
miquellg miquellg is offline
Miembro
 
Registrado: abr 2005
Posts: 46
Poder: 0
miquellg Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 29-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 22:40:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi