Programación General > Visual Basic 6.0 e inferiores

 Poner Mi Sistema En Red

<< < (2/2)

Shiquilla:
Muy buenas, yo hago aplicaciones en red y para ello, también hago un sistema de bloqueos. Por si te vale te lo explico:

Tengo una tabla Bloqueos donde guardo:
- Key del registro que está bloqueado
- Código de usuario

Cuando el usuario entra en la aplicación, hago un DELETE de la tabla filtrando por el código de usuario por si el usuario tenía algun registro bloqueado (por ejemplo estaba editando un articulo y se va la luz).

Después, imaginemos que tenemos una tabla que tiene 3 campos, de los cuales id1 e id2 son clave primaria. Entonces mi key sería: clsNombreTabla#CamposClave

clsNombreTabla#id1#id2

Cuando un usuario intenta editar un artículo, miro si está bloqueado ese registro y si no lo está lo bloqueo, en el caso contrario se lo muestro en sólo lectura. Al terminar de editar un artículo desbloqueo el registro.

Espero haberte ayudado.

seba_m:
Shiquilla

Gracias, por lopa excelente explicacion, pero me gustaria si puedes esplayarte un poco mas sobre esa tabla de bloqueos como la haces, que campos tiene, no comprenso esa parte, ademas que motor usas para la base de datos en red.

Si no es molestia me guataria contactarte por MSN o mail,

mi mail y msn es: seba_m@arnet.com.ar

gracias

Shiquilla:
Buenas Seba_m, ya te agregué al MSN.

Mi metodología a la hora de hacer un programa es hacer, por cada tabla, una clase donde tengo las operaciones más frecuentes que se harán sobre esa tabla (recuperar un registro, insert, update....).

Por ejemplo, imaginate que tengo una tabla Clientes. Cuyos campos son:
- idCliente (clave primaria)
- Nombre
- Direccion

Entonces, en mi proyecto tendré una clase que se llamará clsClientes.

En la clase, tengo una propiedad que devuelve la Key del cliente de esta forma:
clsClientes#CamposClave (por ejemplo si recupero el cliente 1 entonces será --> clsClientes#1)

Hasta aquí bien, ahora vamos con el sistema de bloqueos.

Tengo una tabla que se llama Bloqueos que tiene los siguientes campos:
- sKeyRegistro
- idUsuario

Si el usuario 34 está editando el cliente 1, en la tabla Bloqueos habrá un registro tal que asi:

sKeyRegistro                idUsuario
clsClientes#1                                                34


Ahora, si el usuario 50 quiere editar el cliente 1, hago lo siguiente:

goBD = la conexion a la bd
goUsuario = clase de usuario global a la aplicacion que contiene el codigo de usuario (en este caso será el 50)


--- Código: Text ---Public Function gfbBloquearRegistro(loObjecto As Object) As BooleanDim lsSQL As StringDim loRS As RecordsetDim lbBloqueado As Boolean        'Si el registro no está bloqueado entonces lo bloqueo        lbBloqueado = False        lsSQL = &#34;SELECT * FROM Bloqueos WHERE sKeyRegistro = &#34; & loObjecto.MPSCODIGO 'Propiedad que me devuelve la Key    Set loRS = goBD.Execute(lsSQL)     lbBloqueado = Not loRS.EOF        If Not lbBloqueado Then        lsSQL = &#34;INSERT INTO Bloqueos VALUES (&#34; & loObjecto.MPSCODIGO & &#34;,&#34; & goUsuario.midUsuario & &#34;)&#34;        goBD.Execute lsSQL    End If        loRS.Close    Set loRS = Nothing End Function Dim loCliente As clsClientesDim lbBloqueado As BooleanSet loCliente = New clsClientesloCliente.MPSCODIGO = &#34;clsClientes#1&#34; lbBloqueado = gfbBloquearRegistro(loCliente)If lbBloqueado Then MsgBox &#34;EL registro está bloqueado bla bla bla&#34; 
Bueno, por aquí no consigo explicartelo mejor. A ver si entras al MSN y te lo explico más detalladamente.

SObre el sistema de base de datos, yo uso este sistema para cualquier gestor de base de datos (lo he usado tanto para Access como para SQL Server)

Saludos,

seba_m:
Gracias, ya te agrege y luego hablamops para que me expliques bien , ademas he decidiod adoptar MySQL 5.0

Saludos

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa