Visual Basic - Dos años con este problema

Life is soft - evento anual de software empresarial
 
Vista:

Dos años con este problema

Publicado por javier (32 intervenciones) el 11/03/2004 00:18:15
Llevo dos años parcheando un problema con ADO y por fin me decido a intentar solucionarlo

Utilizo ADO actualizado con Servipack 5 y Datagrid para modificar una base de datos Access 2000

Utilizo la siguiente cadena de conexion:

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\ord1\ord1c\carpeta\Base.mdb;Persist Security Info=False"

Adodc1.CommandType = adCmdTable

Adodc1.RecordSource = "Tabla"

y establezco la propiedad

Datagrid1.Datasource=Adodc1

Con esta conexion los cambios que MEDIANTE PROGRAMACION realizo en la base de datos (por ejem.añadir registros)se actualizan rapidamente en la base de datos Access que subyace, pero para que estos cambios se reflejen en el Datagrid que esta en pantalla tengo que poner un retardo de 500 milisegundos ("Sleep 500") antes de actualizar la conexion con "Adodc1.Refresh", o esperar a hacer un nuevo cambio para ver el cambio anterior.

Me doy cuenta de que parece una de esas cosas raras que solo le pasan a uno, ¿O no?

Gracias.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Dos años con este problema

Publicado por Martin (21 intervenciones) el 11/03/2004 22:25:17
Para que los cambios se vean reflejados en el datagrid tendrías que hacer datagrid.Refresh. No sé si ya lo hayas intentado pero por las dudas...
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos años con este problema

Publicado por Javier (32 intervenciones) el 12/03/2004 15:11:48
Gracias Martin, pero eso ya lo intente.
Supongo que la solucion sera una chorrada, pero no hay manera.

Un saludo.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos años con este problema

Publicado por Orlando (6 intervenciones) el 07/05/2004 13:59:42
Hola Javier (el que lleva 2 años con un problema), yo tengo un problema
que no se si esta relacionado. Lo que a mi me ocurre es que al abrir
un recordset, a veces la aplicación VB va mas rapida, y ya esta ejecutando la siguiente instruccion, cuando todavia se esta llenando internamente el recordset.
Tambien tengo puesto "tiempos de espera" para asegurarme,
por que NO se me ocurre otra manera. Pero como abro muchos recordsets y no se donde me puede saltar el problema, lo tengo en todos lados y eso ralentiza la aplicacion. Hay alguna manera mas "elegante" de controlar cuando un recordset esta "realmente" abierto. Hay algun sitio o alguna documentación que hable como
y quien hace internamente las operaciones de ADO y ACCESS.
Yo entiendo que VB, al crear un recordset de una tabla, llama al motor
Jet ( el .DLL) , y este se encarga de procesar el "SELECT" y devolver
los registros. Me pregunto si Jet le envia algún aviso a VB o no, para que
este siga ejecutando las siguientes lineas de programa.
A lo mejor me he explicado mal. Pero cualquier ayuda o sugerencia
estaría eternamente agradecido. Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Dos años con este problema

Publicado por victor (2 intervenciones) el 07/10/2004 20:18:27
Oye creo que la solución es que en lugar de poner Adodc1.Refresh, tienes que poner Adodc1.Recordset.Requery, ya que Refresh es para los Data y Requery es pa los Adodc.
Espero que todavia te sirva y que te funcione, a mi si me funciona ya que yo tambien estaba con el mismo problema.
ADIOS
Yo tambien tengo un problema y es que no puedo poner en orden alfabetico los datos en un DataGrid desearia si sabes que me pudieras ayudar.
Gracias.
Mi-correo : [email protected]

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar