Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2005
Avatar de hgiacobone
hgiacobone hgiacobone is offline
Miembro
 
Registrado: may 2003
Ubicación: La Plata, Bs. As., Argentina
Posts: 165
Poder: 21
hgiacobone Va por buen camino
Lightbulb 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;
No es que quiero mezclar tranvías con naranjas, pero se pueden utilizar Transacciones y BatchUpdate en simultaneo?

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.
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


La franja horaria es GMT +2. Ahora son las 20:27:14.


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