![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Toma nota por favor de que edité tu mensaje para encajarlo en etiquetas [delphi] y hacer así más legible el código. Te ruego uses estas etiquetas en lo futuro. Si entras a editar tu mensaje podrás ver como es que se utilizan.
En cuanto al problema pues no puedo contestarte ya que no tengo ni la menor idea de qué hace el segundo ClientDataSet (ni el primero). Lo único que puedo decirte es que si lo que requieres es recorrer este ClientDataSet en cada ciclo del primero pues basta que uses ClientDataSet2.First para regresar al primer registro en lugar de cerrar el dataset y volver a abrirlo e cada paso. Otra cosa será si en cada ciclo del primer ClientDataSet, el Query que alimente a ClientDataSet2 cambia su sentencia SQL de manera que- entonces sí -necesariamente tendrás que cerrar y reabrir el dataset. // Saludos |
|
#2
|
|||
|
|||
|
Gracias por la nota.
El primer clientedataset trae la cabecera con varios codigos de articulos y el segundo trae el detalle de cada codigo de articulo. 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 a fin de optimizar el programa, puesto que lo que hace el programa es armar un archivo de texto. |
|
#3
|
||||
|
||||
|
Cita:
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:
y en el detalle:
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 |
|
#4
|
||||
|
||||
|
NO me imagino porque has usado este enfoque, pero me parece que lo que estas tratando de hacer es un join... y yo preferiria dejarle ese trabajo al servidor de bases de datos.
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#5
|
||||
|
||||
|
Cita:
Desde luego que esta es la mejor opción de entrada, dejar que sea el servidor quien haga la relación. En mi defensa diré que al principio del hilo sólo se mencionaba un query y no dos. // Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|