border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

  #1 (permalink)  
Antiguo 31-07-2004, 01:00:00
Un Nuevo Amigo
 
Registrado: jun 2004
Posts: 19
PrimerosPasos Valoración +2
Predeterminado Aplicación multiusuario

Aplicación multiusuario

Hace tiempo empecé con este tema y me aconsejaron vincular las tablas de la BD en los Clientes a la BD del servidor. Lo hice y funciona bien.

Ahora tengo el problema en la aplicación. La tengo hecha para que funcione en un solo ordenador y, ahora, necesito modificar para que lo haga en red.

No he trabajado nunca con bloqueos y por eso pido ayuda para que alguien me vaya guiando o me pase algún ejemplo; bien trabajando con bloqueos o bien con transacciones.

Tengo todo utilizando DAO aunque, creo, no es lo mejor.

Es muy importante y muy urgente.

Les paso un ejemplo de cómo grabo la información:

....
....
Set RsEmpleados = DB.OpenRecordset("EMPLEADOS", dbOpenDynaset)
....
....
....

If NUEVO = 1 Then
RsEmpleados.AddNew
Else
RsEmpleados.Edit
End If
RsEmpleados("CODIGO" = CODIGO
RsEmpleados("DNI" = REG(1)
RsEmpleados("NOMBRE" = REG(2)
RsEmpleados("DIRECCION" = REG(3)
RsEmpleados("CPOSTAL" = REG(4)
RsEmpleados("POBLACION" = REG(5)
RsEmpleados("PROVINCIA" = REG(6)
RsEmpleados("TELEFONO" = REG(7)
RsEmpleados("MOVIL" = REG(8)
RsEmpleados("CATEGORIA" = REG(9)
RsEmpleados("PRECOSTO" = REG(10)
RsEmpleados("PREAYUDANTE" = REG(11)
RsEmpleados("PREOFICIAL" = REG(12)
RsEmpleados.Update

Por supuesto, si dos usuarios acceden al mismo empleado, el programa se rompe. Si se ha cambiado algo por el primero y el segundo usuario graba, no sé lo que pasa. Se pierde la información y, bueno, no hace falta que me extienda más porque todos sabemos lo sucedido.

Perdón por haberme extendido tanto.

Gracias por todo.
</TR>
Responder Con Cita
  #2 (permalink)  
Antiguo 17-09-2004, 01:00:00
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.266
acalanto ha deshabilitado la reputación
Predeterminado RE: Aplicación multiusuario

RE: Aplicación multiusuario

En principio deberías utilizar el bloqueo optimizado de registro.

RsEmpleados.LockType = adLockOptimistic

Este caso solamente bloqueará el registro durante el proceso de update para que otros usuarios no puedan acceder.

Como este bloqueo te lo vas a encontrar en infinidad de ocasiones (Contra más equipos ataquen a la DB, mayor es el número de posibilidades), será obligado que en las acciones de actualización dispongas de un buen capturador de errores, y si éste se produce tienes que

RsEmpleados.Move 0

para posicionar nuevamente en el registro y volver a intentar.

Esto naturalmente es a rasgos generales pero el procedimiento general es así, otra cosa es lo que puedas ampliarlo y optimizarlo.


Te diré que las DB no suelen tener un bloqueo de registro, sino que bloquean la página de datos en la que se encuentra ubicado el mismo, con lo cual no es de extrañar que encuentres bloqueado un registro que ningún usuario tiene pillado (Pero que lamentablemente está en la misma página que otro que si lo está.

El tamaño por defecto de una página es de 2048 bytes con lo que puedes imaginar que si bloqueas un regstro de una table que mide 64 bytes por cada registro, estarás bloqueando -si toda la página contiene registro útiles- aproximadamente 32 registros simultáneamente.

Un saludo
-Acalanto-

Editado por acalanto, Lunes, 16 de Agosto de 2004, 15:00</TR>
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
Respuesta


Herramientas
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
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Transacciones - Multiusuario juancarlosavalos Visual Basic 6.00 10 15-10-2006 02:52:41
nro de factura en sistema multiusuario ediazreyes Visual Basic 6.00 4 19-12-2005 18:33:34
Base de datos Multiusuario mabopasa Visual Basic 6.00 3 15-07-2005 21:47:05
sistema en multiusuario crisjavi Visual Basic 6.00 6 12-05-2005 14:37:19
Consideraciones desarrollar aplicacio multiusuario Gace Visual Basic 6.00 3 06-05-2005 21:32:59


La franja horaria es GMT. Ahora son las 23:10:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right