Programación General > C++ Builder
Bloquear Registros
kekal:
Hola, un pregunta ....
tengo una aplicación en la que algunas tablas los usuarios hacen Altas/bajas y modificaciones el problema cae en que dos usuarios intenten hacer una modificación del mismo registro en una tabla.
hay alguna forma de bloquear los registros en una tabla? y se puede detectar? (para mandar un mensaje "registro en uso por otro usuario")
Por cierto (e importante) uso una base de datos de access
Si alguien puede dar un poco de luz al problema
gracias
mumo:
mire estimado (a)
he hecho la misma pregunta en todas partes y nadie cacha, pero lo solucione de una forma muy basica, ya que lo que queria era bloquear un reg. cuando estubiera trabajando con el, y que los demas usuarios pudieran verlo. encontre varias instrucciones para agregar en una consulta SQL, pero no me sirve,
asi que lo que hice fue crear una tabla de bloqueos y el primero que tome el registro queda grabado en esa tabla, el usuario y el registro, asi cualquiera que quiera acceder al reg. ya tomado primero verifico la tabla, si no esta permite de lo contrario envio un mensaje en pantalla de bloqueado y solo permito que vea los datos.
no se si hay alguna instruccion en c++ builder que permita bloquear los reg. pero seguire buscando para mejorar la forma de bloqueos.
kekal:
Hola, mummo
Por lo que averigue la base de datos de access no permite bloqueos con lo cual es una putada tu solución es viable, yo habia hecho algo parecido creando campos llamados enuso tipo numerico
si el campo es mayor a 0 (el numero del ususario) daba un mensaje "en uso por el usuario:"+AnsiString(x)
pero me parece que lo mejor va a ser pasarse a FireBird/Interbase
Saludos
mumo:
no creo que el cambio de motor de bd resulte, creo que es mas bien un asunto de lenguaje de prog. yo ocupo sql server y no he dado con la solucion exacta, solo el parche que estoy usando.
Buildero:
Que tal,
Hay mucho que se puede decir sobre la forma en cómo cada manejador de base de datos trabaja sobre los bloqueos.
Las bases de datos de sobremesa (Access, Paradox, DBase) utilizan técnicas de bloqueo diferentes.
Si nos trasladamos a Servidores de Bases de Datos (Interbase, Firebird, SQL Server), las técnicas también son diferentes. De hecho aqui entran en juego las llamadas "Transacciones".
Si se esta pensando en accesar la base de datos en mas de una maquina lo ideal es trabajar con Servidores de Bases de Datos, ya que estos están preparados para este propósito, si lo que se pretende es trabajar en una sola maquina (ejecutar una sola intancia del programa), las bases de datos de sobremesa son una opción.
Les recomiendo un libro muy bueno (en español) que trata sobre el manejo de bases de datos en C++ Builder. Muy completo.
La cara oculta de C++ Builder
Saludos.
Navegación
[#] Página Siguiente
Ir a la versión completa