Ver Mensaje Individual
  #11  
Antiguo 01-03-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 27
__cadetill Va por buen camino
Cita:
Empezado por Giniromero
Entonces, ¿este tipo de situaciones como la resolverías tu?, quiero decir, si tienes una tabla grande, que además sabes se va ha hacer más grande con el tiempo. Necesitas varios campos calculados, que dependen de otras tablas, y además tienes que hacer un filtrado por determinados campos, (dos o tres), y ves que todo eso, le cuenta mucho hacerlo con una consulta usando DataSet, pero igualmente necesitas poder escribir en los registros resultantes, (y por tanto no puedes usar TIbQuery).¿como lo plantearías tu?
Suponiendo que tenga tazón en que no es modificable (y viendo que nadie dice lo contrario....) yo lo haría de la siguiente manera:
Utilizaría TIBDatasets pero sin ningún SP. Eso sí, super bien filtrados mediante la cláusula where!! Aunque este filtro haga que retorne 1 solo registro (tendría que ser prácticamente instantaneo esto).
Por otro lado... ¿de cuantos campos calculados estamos hablando? ¿de 3, 4, 5? Si son poquitos los calcularía en el OnCalcField del TIBDataset lanzando SQLs sobre la base de datos (que tendrían que ser también instantáneos ya que sólo han de devolver 1 registro o ninguno).

Resumiendo: filtrar el TIBDataset para que retorne el número de registros lo más pequeño posible (si puede ser 1 sólo registro) y calcular los campos calculados mediante SQLs.

Otra opción que se me acaba de ocurrir
Puedes usar una tabla de trabajo en la que tengas TODOS los campos que necesitas y mediante triggers actualizar las tablas maestras. Con esto te ahorras el tema de los campos calculados, pero no la de un buen filtro en el Where, ok?
Responder Con Cita