Refresco de datos en tdbgrid.

21/02/2011 - 18:27 por Maier-Finn | Informe spam
Hola A los pocos que quedamos aqui.

Tengo una cuestion que no soy capaz de resolver.

Les detallo un poco el problema.
Tengo un Form. que tiene 3 frames con un Tdbgrid cada uno de ellos.

Pues bien. A la hora de introducir los datos en unas determinadas textbox y
validar las acciones de entrada, pretendo que los datos sean refrescados y
reflejados en el tdbgrid correspondiente pero de forma Instantanea... porque
digo esto... por lo siguiente. Inicialmente no es mostrada la información.
A la hora de introducir una segunda tanda de datos, y validar es cuando me
aparece reflejado en la tabla los datos que introduje la primera vez.
Se produce un "retraso" en la forma de mostrar la informacion. Aunque os
garantizo que la tabla que toma dicha información la tiene al instante.

Se me ocurrio ejecutar la rutina de grabado, pintado y refresco, colocando
puntos de interrupción y que pasó?... que el muy cabrito lo hace
perfectamente bien y refleja todo de forma correcta.

He intentado meter temporizadores para retardar la accion por si es muy
rapido el refresco y no coge los datos adecuadamente y nada.
He intentado con doevents y nada.

No se por donde tirar para que cada vez que doy a mi tecla aceptar, me salga
la informacion de la forma correcta.

Alguna sugerencia ???

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua
21/02/2011 - 20:06 | Informe spam
Hola,

Quedamos tan pocos que hay que echar la mano aunque no se tenga idea
de que va la cosa, nada más que para que no nos gane el silencio.

Nunca usé el TDbGrid, así que ya te puedes hacer una idea de lo que
puedo servirte.

¿Combinar DoEvents / Refresh / DoEvents no te sirve?

Una solución de fuerza bruta sería cambiar la propiedad que genera el
RecordSource, o lo que sea. Algo así como Insertar los nuevos datos,
asignar un RecordSource con un conjunto vacío, asignar un record
source con la consulta correcta.

Siempre trabajé con el MsFlexGrid a manopla, justamente porque me
aterraba que me pasara una cosa por el estilo.

Suerte!


"Maier-Finn" escribió en el mensaje
news:iju7ap$k9d$
Hola A los pocos que quedamos aqui.

Tengo una cuestion que no soy capaz de resolver.

Les detallo un poco el problema.
Tengo un Form. que tiene 3 frames con un Tdbgrid cada uno de ellos.

Pues bien. A la hora de introducir los datos en unas determinadas
textbox y validar las acciones de entrada, pretendo que los datos
sean refrescados y reflejados en el tdbgrid correspondiente pero de
forma Instantanea... porque digo esto... por lo siguiente.
Inicialmente no es mostrada la información.
A la hora de introducir una segunda tanda de datos, y validar es
cuando me aparece reflejado en la tabla los datos que introduje la
primera vez.
Se produce un "retraso" en la forma de mostrar la informacion.
Aunque os garantizo que la tabla que toma dicha información la tiene
al instante.

Se me ocurrio ejecutar la rutina de grabado, pintado y refresco,
colocando puntos de interrupción y que pasó?... que el muy cabrito
lo hace perfectamente bien y refleja todo de forma correcta.

He intentado meter temporizadores para retardar la accion por si es
muy rapido el refresco y no coge los datos adecuadamente y nada.
He intentado con doevents y nada.

No se por donde tirar para que cada vez que doy a mi tecla aceptar,
me salga la informacion de la forma correcta.

Alguna sugerencia ???


Respuesta Responder a este mensaje
#2 Maier-Finn
28/02/2011 - 12:07 | Informe spam
Hola Leonardo.
Gacias por la respuesta. y perdona por la demora en contestar estuve de
vacaciones unos dias.

Todo esto que me sugieres ya lo he probado y con variantes. sin tener
resultado positivo.
Lo unico que me queda ya es desinstalar el componente, volverlo a instalar y
reescribirme el codigo de busqueda.

En fin... lo mas seguro sea cualquier chorrada en la que no me he fijado.

Si lo resuelvo, te lo comentaré.

Saludos.





"Leonardo Azpurua" escribió en el mensaje
news:ijud1d$738$
Hola,

Quedamos tan pocos que hay que echar la mano aunque no se tenga idea de
que va la cosa, nada más que para que no nos gane el silencio.

Nunca usé el TDbGrid, así que ya te puedes hacer una idea de lo que puedo
servirte.

¿Combinar DoEvents / Refresh / DoEvents no te sirve?

Una solución de fuerza bruta sería cambiar la propiedad que genera el
RecordSource, o lo que sea. Algo así como Insertar los nuevos datos,
asignar un RecordSource con un conjunto vacío, asignar un record source
con la consulta correcta.

Siempre trabajé con el MsFlexGrid a manopla, justamente porque me aterraba
que me pasara una cosa por el estilo.

Suerte!


"Maier-Finn" escribió en el mensaje
news:iju7ap$k9d$
Hola A los pocos que quedamos aqui.

Tengo una cuestion que no soy capaz de resolver.

Les detallo un poco el problema.
Tengo un Form. que tiene 3 frames con un Tdbgrid cada uno de ellos.

Pues bien. A la hora de introducir los datos en unas determinadas textbox
y validar las acciones de entrada, pretendo que los datos sean
refrescados y reflejados en el tdbgrid correspondiente pero de forma
Instantanea... porque digo esto... por lo siguiente. Inicialmente no es
mostrada la información.
A la hora de introducir una segunda tanda de datos, y validar es cuando
me aparece reflejado en la tabla los datos que introduje la primera vez.
Se produce un "retraso" en la forma de mostrar la informacion. Aunque os
garantizo que la tabla que toma dicha información la tiene al instante.

Se me ocurrio ejecutar la rutina de grabado, pintado y refresco,
colocando puntos de interrupción y que pasó?... que el muy cabrito lo
hace perfectamente bien y refleja todo de forma correcta.

He intentado meter temporizadores para retardar la accion por si es muy
rapido el refresco y no coge los datos adecuadamente y nada.
He intentado con doevents y nada.

No se por donde tirar para que cada vez que doy a mi tecla aceptar, me
salga la informacion de la forma correcta.

Alguna sugerencia ???





Respuesta Responder a este mensaje
#3 suso
01/03/2011 - 12:23 | Informe spam
On 28 feb, 11:07, "Maier-Finn"
wrote:
Hola Leonardo.
Gacias por la respuesta. y perdona por la demora en contestar estuve de
vacaciones unos dias.

Todo esto que me sugieres ya lo he probado y con variantes. sin tener
resultado positivo.
Lo unico que me queda ya es desinstalar el componente, volverlo a instalar y
reescribirme el codigo de busqueda.

En fin... lo mas seguro sea cualquier chorrada en la que no me he fijado.

Si lo resuelvo, te lo comentaré.

Saludos.

"Leonardo Azpurua" escribió en el mensajenews:ijud1d$738$

> Hola,

> Quedamos tan pocos que hay que echar la mano aunque no se tenga idea de
> que va la cosa, nada más que para que no nos gane el silencio.

> Nunca usé el TDbGrid, así que ya te puedes hacer una idea de lo que puedo
> servirte.

> ¿Combinar DoEvents / Refresh / DoEvents no te sirve?

> Una solución de fuerza bruta sería cambiar la propiedad que genera el
> RecordSource, o lo que sea. Algo así como Insertar los nuevos datos,
> asignar un RecordSource con un conjunto vacío, asignar un record source
> con la consulta correcta.

> Siempre trabajé con el MsFlexGrid a manopla, justamente porque me aterraba
> que me pasara una cosa por el estilo.

> Suerte!

> "Maier-Finn" escribió en el mensaje
>news:iju7ap$k9d$
>> Hola A los pocos que quedamos aqui.

>> Tengo una cuestion que no soy capaz de resolver.

>> Les detallo un poco el problema.
>> Tengo un Form. que tiene 3 frames con un Tdbgrid cada uno de ellos.

>> Pues bien. A la hora de introducir los datos en unas determinadas textbox
>> y validar las acciones de entrada, pretendo que los datos sean
>> refrescados y reflejados en el tdbgrid correspondiente pero de forma
>> Instantanea... porque digo esto... por lo siguiente. Inicialmente no es
>> mostrada la información.
>> A la hora de introducir una segunda tanda de datos, y validar es cuando
>> me aparece reflejado en la tabla  los datos que introduje la primera vez.
>> Se produce un "retraso" en la forma de mostrar la informacion. Aunque os
>> garantizo que la tabla que toma dicha información la tiene al instante.

>> Se me ocurrio ejecutar la rutina de grabado, pintado y refresco,
>> colocando puntos de interrupción  y que pasó?... que el muy cabrito lo
>> hace perfectamente bien y refleja todo de forma correcta.

>> He intentado meter temporizadores para retardar la accion por si es muy
>> rapido el refresco y no coge los datos adecuadamente y nada.
>> He intentado con doevents y nada.

>> No se por donde tirar para que cada vez que doy a mi tecla aceptar, me
>> salga la informacion de la forma correcta.

>> Alguna sugerencia ???



Hola, yo lo soluciono con lo siguiente:

Adodc1.Recordset.Requery
Adodc1.Refresh

Esto ya te refresca el tdbgrid, si no te sirve me avisas.
Un saludo
Suso
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida