Ver Mensaje Individual
  #9  
Antiguo 01-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Oscar25
Gracias por la nota.
Hay alguna forma en que el where por codigo de articulo del segundo query lo pueda realizar sin tener que abrir y cerrar todas las veces
Imagino que sí ya que me parece recordar que los ClientDataSets admiten tablas anidadas de manera que los detalles de cada registro se pueden guardar como un campo (tabla anidada) del ClientDataSet maestro. Sin embargo desconozco cómo se hace.

Por otra parte yo te recomiendo atender a la opinión de cadetill. Aunque ODBC puede ser lento no debería tardar tanto en hacer las consultas.

Fijate además que los Query tiene la propiedad DataSource que te permite establecer la relación maestro-detalle similar a como se hace con los Table y su propiedad MasterSource.

Digamos que en el maestro pondrías:

Código SQL [-]
select * from maestro

y en el detalle:

Código SQL [-]
select * from detalle where maestro_id = :id

donde el parámetro 'id' debe llamarse igual que el campo correspondiente en la tabla maestra.

Al la propiedad DataSource del query detalle le asignas el DataSource enlazado al query maestro.

Al hacer esto, los parámetros del detalle se llenan automáticamente sin necesidad de cerrar y abrir. Claro está que dependiendo de la base que estés atacando es posible que aún así hay un proceso de cerrar-abrir detrás pero aún así será un poco más rápido.

Todo esto claro, junto con establecer correctamente los índices en tus tablas ya que muchas veces las consultas son lentas simple y sencillamente por falta de índices.

// Saludos
Responder Con Cita