Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   No se bloquea registro accedido por dos usuarios (https://www.clubdelphi.com/foros/showthread.php?t=14951)

Tomás 05-10-2004 19:41:28

No se bloquea registro accedido por dos usuarios
 
Hola:

Tengo una aplicación (D7, InterBase 6, IBX) en mi ordenador (Ord.A, monopuesto) que intento que funcione también desde otro (Ord.B conectado en red al mio).

Para ello cambio:

DM.IBDB.DatabaseName := 'C:\Temp\Alumnos\TDALUMNOS.GDB';

por

DM.IBDB.DatabaseName := 'despacho.:C:\Temp\Alumnos\TDALUMNOS.GDB';

Conecta bien, pero al hacer un experimento (La Cara Oculta... pág 628) para ver que se bolquea un registro al ser accedido por los dos, no funciona adecuadamente.

- Abro la aplicación desde los dos ordenadores: Ord.A y Ord.B

- Desde el A edito el primer registro pero no confirmo la edición

- Desde B edito el mismo registro y confirmo la edición.

- Vuelvo a A y confirmo la edición, debería haber un mensaje indicando que no se puede realizar la edición porque otro usuario lo ha editado, pero no sale ningún mensaje y queda modificado según el ordenador A.

¿Qué es lo que hago mal? ¿Cómo se evita esto? ¿Tengo que hacer algo más?

La edición la hago con un botón editar y otro que confirma:
Código Delphi [-]
procedure TFDatos.FormCreate(Sender: TObject);
begin
  //conectar base de datos, transación, dataset
  DM.IBDB.DatabaseName := 'despacho.:C:\Temp\Alumnos\TDALUMNOS.GDB';
  DM.IBDB.Connected := True;
  DM.IBT.Active := True;
  DM.IBDSAlumnos.Active := True;
  //situarse en página tabla
  PCAlumnos.ActivePage := TSTabla;
end;

procedure TFDatos.BBModificarClick(Sender: TObject);
begin
  //modificar registro situándose en página ficha
  DM.IBDSAlumnos.Edit;
  PCAlumnos.ActivePage := TSFicha;
end;

procedure TFDatos.BBAceptarClick(Sender: TObject);
begin
  // aceptar cambios
  DM.IBDSAlumnos.Post;
  DM.IBT.CommitRetaining;
  //ir a página tabla
  PCAlumnos.ActivePage := TSTabla;
end;

¿Alguna idea? ¿Necesitareis más detalles de la conexión?

** Es la primera vez que intento hacer algo multipuesto.

Un saludo. Tomás.


La franja horaria es GMT +2. Ahora son las 04:54:19.

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