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 Buscar Temas de Hoy Marcar Foros Como Leídos

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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 21:51:28.


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