PDA

Ver la Versión Completa : Configutar Transaccion en tiempo de ejecucion


senpiterno
28-10-2004, 18:12:13
Hola Amigos

Me gustraria saber como puedo configurar un componente Transaccion de IBX, en tiempo de ejecucion, es decir como configurar la transacion como de solo lectura o solo escritura o ambas...

Gracias por cualquier ayuda

Saludos....

Arturo
28-10-2004, 23:33:56
hola a todos, pero me supondo que es por medio de las propiedades de dicho control, tengo un codigo que como cualquier te explicaria la conexion a la base y los pequeños arreglos de un Ibtransacction.
esto lo obtuve de una referencia que se llama IBX. Conexión directa a Interbase que la encontre en la web, y espero que sirva de algo *

* Solo indicar que la transacción la he configurado con un nivel de aislamiento READ COMMITED, ya que este nivel posibilita que la transacción vea todos los datos confirmados en la base de datos y actualice filas confirmadas por otras transacciones simultáneas (se obtiene al dar doble click sobre el componente ibtransaccion y se escoge la oopcion read commited.).
hay una propiedad del Ibtransacction.connect=False ------>se quede asi y cuando ejecutamos el programa al abrir base automaticamnete asigna la transaccion.

procedure TDMMain.DataModuleCreate(Sender: TObject);
begin
try
// ¡Conectamos!
DB.Connected := True;
// TestConnected, devuelve True si se ha podido conectar.
// Aprovechamos para iniciar la transacción
if DB.TestConnected then

TPermanente.StartTransaction;

except
ShowMessage('No se ha podido establecer la conexión con la base de datos');
// veamos el error que nos dá
raise
// Y terminamos
Application.Terminate;
end;
end; //fin del procedure del oncreate del modulo.

bueno espero que os sirva mi umilde opinion.
Bye

athlontado
29-10-2004, 10:08:46
Eso es correcto, pero para que funcione como dice Arturo, creo que tendrás que poner la propiedad BufferChunks de los componentes de acceso a datos, a un valor muy pequeño para que se actualicen los datos a medida que navegas por ellos.

El motivo es que esos componentes cargan por defecto unos 1000 registros (si es que no patino mucho :D ) y, hasta que no empiezan a navegar por el registro que está en la posición 1001 ó superior, no se traen los siguientes 1000 registros. Eso significa que, si te pasas media hora navegando entre los últimos 1000 registros cargados, verás los datos que había hace media hora, aunque hayan sido actualizados por otras transacciones simultáneas, porque estás navegando por los datos que están almacenados en la caché del componente.

Al poner un BufferChunks más pequeño (10 por ejemplo), los datos se actualizarán con mucha más frecuencia, pero eso conlleva una penalización en la carga de la red.

Si he metido la pata por algún lado, por favor, que alguien me corrijaaaaaa.

Salu2 pa tós :p