FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
ADO con Transacciones y BatchUpdate
Hola gente,
Estoy realizando un pequeño sistema de escritorio que utiliza una base Access accedida mediante ADO desde Delphi. Es sabido el crecimiento exponencial de la BD cuando se havcen por ejemplo muchas ALTAS (una base de 2 Mb crece el doble o el triple y luego, al comptarla vuelve a su tamaño original). Cosas del Access que guarda porquerías. Una de las implementaciones mas interesantes con los ADODataSet, es poder utilizar el bloqueo tipo BATCHUpdate, esto es, el motor envia el cursor con los datos solicitados al Cliente y los deja alli en memoria para su procesamiento (Altas, Bajas, Modificaciones) y luego, por ejemplo en el evento de un boton llamado "Actualizar", ponemos la intruccion ADODataSet1.BatchUpdate; y todo el conjunto viaja hacia el servidor. Lo bueno de esto es que no tenemos que tener una conexion constante con el motor. Levantamos la conexion, recibimos los datos y cortamos la conexion. Procesamos los datos recibidos, levantamos una nueva conexion, enviamos los datos (BatchUpdate) y cerramos la conexion nuevamente. Solo le pedimos al motor unos segundos de atención. Por otro lado, existen lo que se llama Transacciones, que basicamente las maneja el motor. Un ejemplo sería: Código:
ADOConnection.BeginTransaction; TRY ADOCommand1.Commandtext:="INSERT INTO Tabla (pirulo) VALUES (algo)" ADOCOmmand.Execute; ADOConnection.CommitTransaction; EXCEPT ADOConnection.RollbackTransaction; END; Alguien sabe como hacerlo?
__________________
Gracias de antemano por vuestra ayuda. ·.:*:.·Yako·.:*:.· Última edición por hgiacobone fecha: 09-05-2005 a las 21:54:33. |
|
|
|