Hola, Necesito saber si en visual basic 6.0

Necesito saber si en visual basic 6.0 el bloquo de registro es automático uso el manejador de visual por default y si se requiere bloquoe si me puedes ayudar con un ejemplo de como hacerlo, de antemano que agradezco la ayuda que me puedas proporcionar

1 respuesta

Respuesta
1
Supongo que debes de venir de dbase, fox, clipper, etc, donde teníamos que bloquear los registros, y las bases de datos para hacer las operaciones de modificación y/o inclusión de registros, pues bien, te tengo buenas noticias, no es necesario hacer esto en VB, el motor interno de bases de datos se encarga de toda esta operación, solo puedes bloquear la base de datos y/o una tabla especifica si vas a implementar acciones donde necesites tener control exclusivo de ellas . Acá te envío un ejemplo de la subrutina final que hace las modificaciones en un formulario de mi programa de control de reparaciones. Las modificaciones ocurren entre la instrucción edit y la instrucción update.
Saludos,
Juan Hernández
Private Sub IncluyeRegistro()
On Error GoTo Err_incluye
Rstaparatos.Fields.Refresh
Rstaparatos.Edit
Rstaparatos!ubicacion = TUbicacion.Text
Rstaparatos!aparato = Taparato.Text
Rstaparatos!garantia = TGarantia.Text
Rstaparatos!Marca = Tmarca.Text
Rstaparatos!Modelo = Tmodelo.Text
Rstaparatos!serial = Tserial.Text
Rstaparatos!nupoliza = "" & TNupoliza.Text
Rstaparatos!Dist = "" & Tdistribuidor.Text
If TFechacompra.Text <> " / / " Then
Rstaparatos!Fecha_comp = CDate(TFechacompra.Text)
End If
If Tnotpre <> " / / " Then
Rstaparatos!Fecha_Npre = CDate(Tnotpre)
End If
If Tnotrep <> " / / " Then
Rstaparatos!Fecha_Nrep = CDate(Tnotrep)
End If
If Option1.Value = False Then
Rstaparatos!aceptapre = True
Else
Rstaparatos!aceptapre = False
End If
Rstaparatos!fact_comp = "" & Tfacturacompra.Text
Rstaparatos!nuorden = "" & TNuorden.Text
Rstaparatos!sintoma = TSintoma.Text
Rstaparatos!Accesorios = "" & TAccesorios.Text
Rstaparatos!Observaciones = "" & TDetalles.Text
Rstaparatos.Update
Rstaparatos.Fields.Refresh
Bgrabar.Visible = False
Bcancelar.Visible = False
Inicializa
PintaTexto
ActivaBotones
Exit Sub
Err_incluye:
respuesta = MsgBox("OCURRIO UN ERROR , NOTIFIQUE AL PROGRAMADOR ESTOS DATOS" & Chr(13) & "ANOTE LO QUE ESTA ARRIBA DE ESTA VENTANA", vbOKOnly, Err.Number & " " & Err.Description)
TUbicacion.SetFocus
End Sub
Mi duda es porque requiero llevar el Folio de algunos recibos y no quiero que el folio se altere si dos usuario mandan al mismo tiempo grabar, no se quizá alguna maq. se más rápida que otra requiero bloquer en este caso y cual de ser así que instrucción usar si tienes algún ejemplo de ello te agradezco mucho tu ayuda. Buen día
Dejame explicarte algo, si no estas constantemente refrescando o actualizando la pantalla igual te puede suceder que dos usuarios accedan al registro y uno de ellos lo modifique, mientras el otro seguirá viendo la misma información que vio al principio, de esta manera la información valida es la que modifica el ultimo usuario, no existe la posibilidad de que dos usuarios modifiquen al mismo tiempo y ocurra un error, de esto se encarga el VB, pero si quieres seguridad de que mientras alguien este modificando más nadie pueda hacerlo debes colocar la propiedad lockedits del recordset a modo pesimista, en el ejemplo de arriba seria:
rstaparatos.lockedits = true
rstaparatos.edit
' aca las modificaciones
rstaparatos.update
Cuando haces esto se bloquea la página de 2K que contiene este registro, por eso tienes que tener cuidado de colocar rutina de tratamiento de errores, pues si otro usuario trata de bloquear el registro al mismo tiempo de esta manera va a ocurrir un error.
Te recomiendo que obtengas los valores que vas a modificar de variables temporales que pidas en pantalla, y que preguntes al usuario si todas las modificaciones están correctas, luego cuando el usuario pulse aceptar comienzas la instrucción edit, esto es para que no bloquees el registro desde que el usuario solicite la modificación, porque puede pasar mucho tiempo desde que ocurre esto hasta que el usuario termina de modificar, y durante todo este tiempo el registro estará bloqueado.
Cualquier duda, sigue preguntando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas