![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
oncalcfield y filter con access
Hola, tengo una base de datos Access y necesito calcular unos campos en base a la misma tabla sumando un campo desde el primer registro hasta el actual dependiendo de otros campos, una especie de acumulador.
El tema es que con el evento oncalcfield tarda bastante en actualizar la tabla, he probado de cambiar el cache y otras propiedades de la tabla , y no he conseguido mejora, la tabla tiene apenas 200 registros y la utilizo mediante los componentes ADO de delphi. El proceso de calculo lo hago recorriendo la tabla desde el principo hasta el registro en el que esta posicionando, usando otro dataset referenciando a la misma tabla. Por otro lado cuando establezco la condicion de filter de una tabla si pongo expresiones que utilicen el mismo campo 2 veces y/o el operador "or" cuando ejecuto la aplicacion me da un error. (ej : "a=100 or a =200"). A alguien le ha pasado?, Esto me fuerza a utilizar el evento OnFilterRecord y es muchiiiisimo mas lento que el filter que se evalua antes de devolver los registros a Delphi. Gracias por cualquier consejo o sugerencia. |
#2
|
||||
|
||||
Saludos
Recorrer la tabla es un procedimiento que consume recursos, lo recomendable es utilizar sentencias SQL para obtener sumatorias de un campo o contar la cantidad de registros y el resultado de esto desplagado en algun edit ![]() Utiliza AdoQuery o AdoDataset, personalmente creo que es mejor
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#3
|
|||
|
|||
Yo pienso lo mismo que el compañero vtdeleon.
si fuera tu hiciera lo siguiente: Pusiera un ADOQuery, le modificas la propiedad conection (en modo Design). ya en Runtime, haces lo siguiente:
salu2. Última edición por MasterXP fecha: 15-08-2005 a las 00:29:33. |
#4
|
|||
|
|||
Gracias, usando ADOQuery mejoro bastante los tiempos, no es una maravilla pero esta mucho mejor.
|
![]() |
|
|
![]() |
|