Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ado bloqueos

Estas en el tema de Ado bloqueos en el foro de Bases de Datos General en Foros del Web. Tengo el siguiente codigo, el problema es el siguiente: compilo el proyecto y lo convierto en ejecutable, ejecuto dos instancias del mismo programa. me posiciono ...
  #1 (permalink)  
Antiguo 02/11/2010, 16:03
 
Fecha de Ingreso: agosto-2010
Mensajes: 45
Antigüedad: 13 años, 8 meses
Puntos: 0
Ado bloqueos

Tengo el siguiente codigo, el problema es el siguiente: compilo el proyecto y lo convierto

en ejecutable, ejecuto dos instancias del mismo programa. me posiciono en text2 cambio el

nombre de la persona y presiono BOTON EDITAR, luego en la otra instancia hago lo mismo y no

me da ningun error, es decir que ado no se da cuenta que el registro cambio y sin embargo

cuando le doy update en la segunda instancia me vuelve a modificar el registro y el registro

ya habia cambiado aunque en la pantalla no se veia. Use bloqueo optimista y es lo mismo.

Gracias

Private Sub Form_Load()
conexion.Open "Provider=Microsoft.jet.OLEDB.4.0; Data Source=" & App.Path & "\base.mdb"
registro.Open "tabla", conexion, adOpenDynamic, adLockPessimistic
end sub



Private Sub BOTON EDITAR_Click()
registro!codigo = Text1.Text
registro!nombre= Text2.Text
registro!sueldo = Text3.Text
registro.Update
registro.Requery
End Sub
  #2 (permalink)  
Antiguo 03/11/2010, 11:18
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Ado bloqueos

Hola, no se con qué motor de BD trabajas aunque intuyo que es Access.

La verdad es que en Access no se como se trata esto pero en los motores tipo SQL Server, Oracle, etc... es con la instrucción BEGIN TRANSACTION , COMMIT y ROLLBACK.

Con esto te aseguras que la transacción que mandes, se realiza con éxito y evitas el error en cuestión del que hablas...

Saludos
  #3 (permalink)  
Antiguo 08/11/2010, 20:08
 
Fecha de Ingreso: agosto-2010
Mensajes: 45
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Ado bloqueos

probe con sql server y me da otros errores: "error en la comprobacion de simultaneidad optimista, se modifico la fila fuera de este cursor" esto es asi cuando pasa lo siguiente: el ususario A y B hacen una consulta, B se va al baño, A modifica un dato. B vuelve y trata de modificar ese mismo dato. cuando trata de modificarlo salta un error y el programa sigue pero cuando intenta hacer recordset.movenext el error es el indicado arriba. pero antes de hacer movenext ejecuta la rutina de error


Private Sub Form_Load()
conexion.Open "Provider=SQLNCLI;datasource=(local);initial catalog=base3; user id=borra12; password=borraborra;"
Set registro.ActiveConnection = conexion
registro.Properties("Preserve On Commit") = True
registro.Properties("Preserve On Abort") = True
registro.Open "tabla", conexion, adOpenDynamic, adLockOptimistic
Set Adodc1.Recordset = registro
end sub

Private Sub EDITAR_Click()
On Error GoTo errores
conexion.BeginTrans
registro!codigo = Text1.Text
registro.Fields("nombre").Value = Text2.Text
registro!sueldo = Text3.Text
registro.Update
MsgBox ("Guardado")
conexion.CommitTrans
Exit Sub
errores:
MsgBox ("hubo un error")
conexion.RollbackTrans
End Sub


private sub siguiente_click()
registro.MoveNext
If registro.EOF = True Then
registro.MoveLast
Exit Sub
End If
Text1.Text = registro!codigo
Text2.Text = registro!nombre
Text3.Text = registro!sueldo
end sub

Etiquetas: ado, multiusuario, bloqueo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:34.