• Domingo 22 de Diciembre de 2024, 21:21

Autor Tema:  Abrir Una Tabla En Modo Exclusivo  (Leído 3662 veces)

bartiv72an

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Abrir Una Tabla En Modo Exclusivo
« en: Martes 25 de Octubre de 2005, 02:49 »
0
Necesito saber cómo abrir una tabla de Access en Modo Exclusivo, o sea, que un usuario la abra y que mientras la tenga abierta, ningún otro usuario pueda acceder a ella.

Por ejemplo, estoy capturando pagos, los cuales tienen esta estructura..:

Clave Otros Datos....
00001 .......
00002 ......

Cuando agrego un pago, la clave es generada automáticamente, a como se vayan agregando se va generando, mi forma de generar esa clave es así.... antes de grabar el nuevo registro, abro la tabla con un "SELECT MAX(clave) AS maximo FROM Tabla....." le sumo uno y ya tengo la clave, mi pregunta es....

Quiero que al momento de grabar el pago, se abra la tabla "TABLA" en modo exclusivo, o sea, bloquearla al resto de los usuarios para que no puedan abrirla mientras busco el MAXIMO y le agrego el nuevo registro....

¿CÓMO HAGO ESO..........?

La operación de agregar lo hago asi...:

Set Rs = New ADODB.RecordSet
Rs.Open "select max(Clave) as mayor from Pagos", Rc, adOpenKeyset, adLockOptimistic
If Not IsNull(Rs("mayor")) Then
Nva_Cve = Val(Rs("mayor")) + 1
Else
Nva_Cve = 1
End If
Rs.Close
Rs.Open "select * from Pagos", Rc, adOpenKeyset, adLockOptimistic
Rs.AddNew
Rs("clave") = Nva_Cve
Rs......
Rs.Update
Rs.Close

Lo que pretendo es que la tabla PAGOS quede bloqueada al resto de los usuarios mientras hago la operación de sacar el Máximo y grabar el registro..

Uso Access 2000, y ADODB para manejar los archivos

ciber_lep

  • Miembro MUY activo
  • ***
  • Mensajes: 301
    • Ver Perfil
Re: Abrir Una Tabla En Modo Exclusivo
« Respuesta #1 en: Viernes 19 de Mayo de 2006, 15:49 »
0
Es forzoso que utilices access, pues otros manejadores de base de datos tienen ya integrado el control para lo que deseas hacer, creo que es en el tema de trasacciones. espero te ayude.
Programación en
PHP,javaScript,HTML,Java,C++,.NET.
Base de Datos,Servidores Linux.

ciber_lep

  • Miembro MUY activo
  • ***
  • Mensajes: 301
    • Ver Perfil
Re: Abrir Una Tabla En Modo Exclusivo
« Respuesta #2 en: Martes 30 de Mayo de 2006, 15:53 »
0
También puedes probar iniciar una transacción.
Programación en
PHP,javaScript,HTML,Java,C++,.NET.
Base de Datos,Servidores Linux.

ing_marco

  • Miembro MUY activo
  • ***
  • Mensajes: 263
    • Ver Perfil
Re: Abrir Una Tabla En Modo Exclusivo
« Respuesta #3 en: Viernes 9 de Junio de 2006, 14:25 »
0
Asi es, lo que tu tratas de solucionar es un problema de concurrencia, en SQL se podria solucionar con transacciones.
Realmente no he trabajado con access, pero asumo que se debe poder crear transacciones.

Investiga hacerca de
begin tran
commit
rollback
 que de van a servir de mucho.

Atte
Ing_Marco
MARCO DIAZ
Ing_Marco
Bachiller Ing de Sistemas.
UNT
Trujillo-Peru

xZextorx

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Abrir Una Tabla En Modo Exclusivo
« Respuesta #4 en: Martes 4 de Julio de 2006, 07:32 »
0
El contro ADO tiene una propiedad locktype si mal no recuerdo pruebala y avisas ojala haya sido de ayuda. Saludos.
...y el maestro dijo: "Si, la vida te da la espalda, besale el culo."