Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2004
Tomás Tomás is offline
Miembro
 
Registrado: may 2003
Ubicación: Elche
Posts: 140
Poder: 22
Tomás Va por buen camino
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.
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 14:50:51.


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