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
DM.IBDB.DatabaseName := 'despacho.:C:\Temp\Alumnos\TDALUMNOS.GDB';
DM.IBDB.Connected := True;
DM.IBT.Active := True;
DM.IBDSAlumnos.Active := True;
PCAlumnos.ActivePage := TSTabla;
end;
procedure TFDatos.BBModificarClick(Sender: TObject);
begin
DM.IBDSAlumnos.Edit;
PCAlumnos.ActivePage := TSFicha;
end;
procedure TFDatos.BBAceptarClick(Sender: TObject);
begin
DM.IBDSAlumnos.Post;
DM.IBT.CommitRetaining;
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.