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 29-07-2003
barrene barrene is offline
Registrado
 
Registrado: jul 2003
Posts: 5
Poder: 0
barrene Va por buen camino
bloqueo de registros

Hola a todos
Tengo un problema con una aplicación con componentes ADO conectados a una base de datos de Oracle.
El caso es que necesito bloquear un registro, porque puede darse el caso de que dos usuarios estén modificando el mismo registro a la vez. Se que poniendo la Objeto Adotable en modo pesismista se bloquea el registro, pero necesito mostrar un mensaje al segundo usuario en caso de que intente modificar un registro bloqueado y no se como averiguar si el registro esta bloqueado o no
Responder Con Cita
  #2  
Antiguo 29-07-2003
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Hola, en Oracle no he trabajado nunca, pero a poco que se asemeje al SQl Server, cuando el segundo usuario intente grabar sus datos modificados del registro "bloqueado en pesimista", el SGDb le avisará con una excepción indicandole que los datos han cambiado desde la última vez en que fueron leidos. basta con capturar esta excepción con un try..except y tratarla como más te convenga.
Tiene la pega que si se trabaja con mucha informació en esa tupla y el usuario está 5 min. editando los datos, pierde este tiempo hasta que salta la excepción por intentar aplicar los cambios al hacer la aceptación, pero este es el metodo más rápido de programar para la concurrencia. Depende de la probabilidad de que se produzca esta situación de que merezca la pena programar algo para que no pierda tanto tiempo.
En orincipio yo lo tengo así y me funciona bien, aunque la probabilidad de concurrencia a la misma tupla con la naturaleza de la información con la que trabajamos es escasa.

Dee todos modos en la dirección www.q3.nu puedes encontrar en el indice de trucos como realizar un bloqueo de forma manual desde código, y aunque no sé de que tipo son los DataSet con los que trabaja este truco igual te pueden ayudar dando alguna pista más.

Suerte.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
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 12:07:57.


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