Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

MDB en Red no se ven actualizaciones

Estas en el tema de MDB en Red no se ven actualizaciones en el foro de Visual Basic clásico en Foros del Web. Hola! Tengo una aplicacion diseñada para trabajar en red, en VB6, conectandose por ADO a un archivo access MDB. El archivo MDB esta ubicado en ...
  #1 (permalink)  
Antiguo 30/08/2013, 13:11
 
Fecha de Ingreso: agosto-2013
Mensajes: 1
Antigüedad: 11 años, 2 meses
Puntos: 0
Sonrisa MDB en Red no se ven actualizaciones

Hola!

Tengo una aplicacion diseñada para trabajar en red, en VB6, conectandose por ADO a un archivo access MDB.
El archivo MDB esta ubicado en una carpeta compartida en red.

El problema es el siguiente:

- Si abro dos copias del programa en la misma computadora, y actualizo cualquier registro en el mdb desde alguna de ellas, la otra copia lo visualiza perfectamente al peticionar dichos registros.
- Si abro el programa desde dos computadoras diferentes, apuntando al mismo MDB ubicado en una carpeta compartida, los cambios hechos desde una de las copias del programa NO son visibles por el otro programa. Es decir, en la PC #1 hago un cambio sobre cualquier registro, y en la PC #2 no se reflejan esos cambios, y viceversa. Es como si mantuvieran un cache de los registros. Para que ambas PC vean los mismos cambios debo cerrar/abrir el programa (volver a conectarse a la DB).

Pero he hecho la siguiente prueba tambien con un resultado extraño:

- abrir dos copias del programa en cada una de otras dos PC. (o sea 4 copias del programa conectados al mdb simultaneamente, 2 en una PC, y 2 en la otra PC).
- si desde la copia # 1 del programa en la PC #1 hago un cambio sobre los registros del mdb, note extrañamente que los cambios en la PC #2 los veia solo en la primera copia que elegia para consultar esos mismos registros, pero en cambio la otra copia en la PC#2 no veia esos cambios (seguia con los registros anteriores).
Y viceversa. Es decir:
PC#1 - copia #1 del programa -> cambios sobre registro X.
PC#2 - copia #1 del programa -> veo esos cambios al consultar la base
PC#2 - copia #2 del programa -> NO veo esos cambios mantiene los anteriores
y viceversa. (pero si consulto primero el registro X desde esta copia #2, los veo, pero ya no los actualiza la copia #1).

Me conecto de la siguiente forma a la base de datos:

------------------------------------------
Set cn = New ADODB.Connection

With cn
.CursorLocation = adUseClient
.ConnectionTimeout = 15
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=pass;Data Source=archivo.mdb"
End With

Set rs = New ADODB.Recordset

With rs
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.CursorLocation = adUseServer
End With

------------------------------------------

Recupero de la siguiente forma:

Set rs= cn.Execute("SELECT id,data,etc", , adCmdText)

------------------------------------------

Y actualizo registros asi:

Set rs = cn.Execute("UPDATE data SET etc ....", , adCmdText)

------------------------------------------

Existe alguna condicion que no estoy considerando para trabajar con el mdb compartido y que los cambios impacten siempre sobre todas las copias del programa conectadas al mismo ?

Desde ya muchisimas gracias!
Saludos
Christian
  #2 (permalink)  
Antiguo 01/09/2013, 21:23
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 9 meses
Puntos: 10
Respuesta: MDB en Red no se ven actualizaciones

Tienes que aplicar un rs.requery en cada operacion que realizes o en todo caso colocar un boton "Actualizar datos o similar" en todo caso ve tu donde le colocas el requery, saludos
__________________
123.http://bunker.host22.com

Etiquetas: actualizaciones, mdb, red, vb6, ven, visual
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 16:48.