Delphi - ADO y datagrid

 
Vista:

ADO y datagrid

Publicado por Marjinhos (7 intervenciones) el 23/12/2006 10:29:13
El problema:

Utilizo ADO para conectarme con mi base de datos Access.

Tengo un Datagrid donde se muestran ciertos datos de una tabla y un botón 'Eliminar' que realiza las comprobaciones pertinentes y elimina de la base de datos el elemento seleccionado del datagrid a través de ADODataSet.delete

Despues de eliminar hago un refresh del form para que al pasar por el FormPaint me haga de nuevo la consulta sobre la tabla (que ya no debería tener el registro eliminado) y la asocie con el datagrid a través del datasource.

El problema es la consulta que realizo en el FormPaint (con un ADODataSet.CommandText := 'select ....') no me caza el cambio realizado.
Si vuelvo a pasar por el formPaint finalmente si me refleja los cambios.

Esto me ocurre tambien al insertar un elemento de la tabla desde otro form, y al pasar al form que contiene el datagrid no me muestra el nuevo hasta que refresco varias veces.

Es un problema de commit?, debería utilizar algo diferente?

Si me pudiesen ayudar les estaría muy agradecido.
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:ADO y datagrid

Publicado por Dr Juzam (821 intervenciones) el 23/12/2006 13:42:14
¿Has probado a cerrar y abrir el dataset de nuevo una vez que has realizado la consulta?

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:ADO y datagrid

Publicado por Marcos (7 intervenciones) el 24/12/2006 15:48:05
No me ha valido como solución.

Ya no sé que probar ... si se te ocurre alguna cosa más te agradecería me lo comunicases.

Es como si la consulta sobre la base de datos se realizase antes de que se confirmen los cambios anteriores. He probado a forzar commits pero tampoco me vale.

Lo curioso es que si la consulta la hago sobre el registro en concreto, a través de Locate, entonces si me funciona bien.

Pero a mi lo que me interesa es realizar una consulta que devuelve varias tuplas, y que los cambios realizados (eliminaciones, inserciones, etc.) se reflejen en esa consulta al ejecutarse la primera vez (y no que tenga que refrescar varias veces el form hasta que los cambios aparezcan)

Uf, menudo rollo que he soltado!

Gracias de antemano
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