FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Query vs. StringList
Query vs. StringList (matriz)
Si tengo que manejar 2 campos calculados, y en el evento OnCalcField, necesito ubicar un dato proveniente de otro query para realizar ese cálculo... que es más rapido: 1) Lanzar ese query y ubicar con LOCATE 2) Tener ese dato almacenado en un StrinList y recorrerlo hasta encontrarlo 3) Alguna recomendación o sugerencia que desconozca? OJO(izquierdo): que el query para calcular los campos viene de una tabla mySQL, pero la tabla con esos campos esta en memoria. OJO(derecho): más o menos, opero con un promedio de 5000 registros. Saludos
__________________
Última edición por MaMu fecha: 10-03-2008 a las 21:27:31. |
#2
|
||||
|
||||
El primero es mejor pues explotas las características de búsqueda del componente.
si aún así deseas usar el segundo prueba con esta forma optimizada:
__________________
Conoce mi blog http://www.edgartec.com |
#3
|
||||
|
||||
Cita:
__________________
|
#4
|
||||
|
||||
Estaba pensando, por ahi lo que me combiene, es trabajar directamente sobre una tabla mySQL, y evitar el OnCalcField, reemplazando todo el metodo por consultas y subconsultas, usando asignaciones y variables, etc.
Lo que me preocupa es la velocidad del proceso, cargando hasta 10000 registros. Que diferencia tengo entre usar: 1)
2)
Saludos
__________________
|
#5
|
||||
|
||||
Son exactamente lo mismo.
Quiere mejorar el rendimiento?, utiliza entonces procedimientos almancenados.
__________________
Conoce mi blog http://www.edgartec.com |
#6
|
||||
|
||||
Algo bueno sería lanzar una sola consulta Select donde cada fila de resultado correspondiera a una fila de la tabla de memoria. Pero claro, esta opción dependería de cómo están relacionados los datos y de si existe alguna condición que pueda aplicarse a la consulta para que arroje las filas tal y como queremos.
Como lo anterior es muy improbable, tener la lista de cadenas parece ser mejor opción, pero ¿cómo sabes qué valores colocar en la lista de cadenas? ¿la tabla de memoria siempre es la misma o presenta un patrón lógico común en cada ocasión que la creas? Tal vez he comprendido mal, pero me parece que indagando un poco más en tu caso podríamos encontrar una solución eficaz. Saludos. Al. |
#7
|
||||
|
||||
La opción de lanzar un LOCATE para cada campo calculado va a ser lenta. En ese caso yo optaría por la búsqueda en la tabla en memoria. De topdas formas no me acaba de quedar clara ninguna de las dos soluciones.
Tal vez no entendí que qué iba la cosa...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
|||
|
|||
Usar un client dataset
Hola, creo que la mejor solucion es usar un client data set almacena los datos en momoria pero con las posibilidades de una tabla
|
#9
|
||||
|
||||
Cita:
En principio mejor el TClientDataset que el TStringList; La única ventaja de este segundo sería el acceso por Find (que utiliza búsqueda dicotómica) y seguramente será más rápido que el locate (aunque se realice en memoria).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#10
|
||||
|
||||
A ver si entendí la sugerencia:
Lo mejor seria un ClienDataSet, con su Provider apuntado al Query que lanza la consulta a la otra tabla, y localizar el registro usando el método find? La situación es la siguiente, ya no uso tablas en memoria, opero directamente sobre el mySQL server, donde en un la tabla A, tengo 2 campos calculados, que se calculan en base a los datos de otra tabla. Saludos
__________________
|
#11
|
||||
|
||||
Cita:
Hay que tener en cuenta cómo es de gande esa segunda tabla...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
StringList: Modificar un item en particular | NEG1414 | C++ Builder | 3 | 25-08-2007 21:26:50 |
Problema con StringList | MaMu | Varios | 2 | 26-05-2007 22:40:45 |
Saltos de linea con stringlist | JuanHC | Internet | 2 | 30-10-2006 12:25:13 |
Recorrer un StringList | bustio | Varios | 2 | 27-02-2005 20:50:21 |
Limite del StringList | victork_py | Varios | 8 | 11-05-2004 23:19:11 |
|