Delphi - Sobre ADO

 
Vista:

Sobre ADO

Publicado por Rodolfo Carlos (3 intervenciones) el 05/09/2002 00:17:22
Hola.

Una consulta.

Tengo una aplicación en Delphi, trabaja con base de datos en Ms. Access y uso ADO. Mi problema es que en tablas grandes, cada vez que hago una consulta la maquina se queda esperando un tiempo de aprox. 7 segundos en recibir la información y visualizarla en el dbgrid.

Al hacer algunas pruebas, veo de que me es más rápido por ODBC.
Aquí surge mi problema.
Cuando tengo abierto en Access y la tabla respectiva (63MB aprox) cada modificación que hago en el DBGrid de la aplicación de Delphi, se puede apreciar los cambios en Access, pero cada vez que hago modificación el Access, no se aprecian los cambios en el DBGRID de la aplicación en Delphi. Para ver los cambios, debo salir de la aplicación y volver a ingresar.

Recuerdo que me paso algo parecido cuando trabaje con un programa en Delphi para usar tablas en Fox Pro, alguien me dijo que cargue el DBE Administrador, que fuera a System, luego a INIT y no recuerdo que era lo que debería cambiar.

Alguien podría ayudarme?

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:Sobre ADO

Publicado por BigLuis (463 intervenciones) el 05/09/2002 19:51:32
Lo de la lentitud es "normal". Piensa que si usas ADOTable al abrirla se trae de la base de datos no solo los datos de los registros, sino los campos enteros con indices, propiedades etc. Seria bastantemás rapido si utilizas SQL que solo trae los datos.Si puedes prescinde del DBGrid con todos los registros y muestra solo lo que te interesen en cada momento con una sentencia SQL.
Por otro lado piensa que cuando traes datos a tu aplicacion de la base de datos, estos se depositan en un caché que es donde tu trabajas.Al hacer un applyupdates o un commit se graban realmente los registros nuevos o modificaciones en la base de datos y tu sigues viendo "tu caché" pero no el de el resto de clientes o los datos actuales de la base de datos.No se si me explico bien.Para ello tendrias que hacer un refresh o cerrar y abrir la tabla o consulta SQL de nuevo.
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