Programación General > Visual Basic 6.0 e inferiores
Poner Mi Sistema En Red
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 = "SELECT * FROM Bloqueos WHERE sKeyRegistro = " & loObjecto.MPSCODIGO 'Propiedad que me devuelve la Key Set loRS = goBD.Execute(lsSQL) lbBloqueado = Not loRS.EOF If Not lbBloqueado Then lsSQL = "INSERT INTO Bloqueos VALUES (" & loObjecto.MPSCODIGO & "," & goUsuario.midUsuario & ")" goBD.Execute lsSQL End If loRS.Close Set loRS = Nothing End Function Dim loCliente As clsClientesDim lbBloqueado As BooleanSet loCliente = New clsClientesloCliente.MPSCODIGO = "clsClientes#1" lbBloqueado = gfbBloquearRegistro(loCliente)If lbBloqueado Then MsgBox "EL registro está bloqueado bla bla bla"
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
[*] Página Anterior
Ir a la versión completa