Ver Mensaje Individual
  #1  
Antiguo 02-07-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Reputación: 24
sitrico Va por buen camino
Select y Transacciones

Desde hace algun tiempo tengo esta duda:

¿ Se requieren transacciones para las consultas con "Select" ?

Porque cuando trabajo, generalmente defino en el data module sólo 2 transacciones una Read Commited y otra Read_Write Table Stability, entonces asigno la "Read Commited" para todas las querys (MDOQuery) con select (sin usar StartTransacction ni commit) y la segunda para todas las actualizaciones (Insert, Update y Delete), iniciando la transacción justo antes del execSQL y ejecutando el commit inmediatamente despues.

Lo que sí hago es usar algo así (en los Select):

Código Delphi [-]
Query.Open;
// leer Datos
// While eof
// lo que sea
Query.Close;
//Siempre cierro la consulta al terminar.


y en las actualizaciones:

Código Delphi [-]
// Preparar SQL  
///INSERT INTO...
// UPDATE ...
// DELETE FROM....
Try
   Transaction.StartTransacction;
   ExecSQL;
   Transaction.Commit;
Except
   on E: Exception do
         Begin
         Transaction.RollBack;
         ModalResult := mrNone;  // generalmente al pulsar Ok
         StatusMsg('Error al guardar datos');  // Status Bar
         Raise Exception.Create('Error al guardar los datos'+#13+
                                'Mensaje del servidor: '+#13+e.Message);
         End;
      End;


¿ debo iniciar y finalizar transacciones para los accesos de sólo lectura ?

D7 + FB2 + MDO

Gracias
__________________
Sitrico
Responder Con Cita