![]() |
recorrer tabla
Hola, tengo una duda a la hora de hacer un bucle.
Si tengo 2 tablas y quiero juntar datos de las 2 en una 3a tabla. Cómo me puedo recorrer cada tabla? Lo que me interesa es ir recorriendo cada tabla y juntar todos los datos de las 2 en la tabla temporal. Cómo se cuando empieza y acaba la tabla? Un saludo. |
Bueno, quizás te pueda servir hacer una consulta (Tquery) uniendo (join) entre las dos tablas por el código que las une, hay muchos ejemplos sobre join en el foro.
La respuesta a tu pregunta es : tabla1.bof // Beginning Of Table tabla1.eof // End Of Código:
tabla1.First; |
Muchas gracias Lepe, lo que me has dicho ha funcionado a las mil maravillas.
Lo que sucede es que ahora tengo otra pequeña duda :D Ya he conseguido meter todo lo que me interesa en mi tabla temporal (que es un rxmemorydata, para mas señas). Lo que pasa es que ahora no se como hacerle una consulta sql a esta tabla temporal, ya que creo que nombre de tabla no tiene (creo, ya que me da error al hacerle la consulta sql). El componente en si, tiene el nombre RxMemoryData1 y tiene un DataSource asociado. Esta claro que con un 'select * from rxmemorydata1' no funciona. Como puedo hacer esto que me propongo? Un saludo. |
Wop!
Pues me parece que lo tienes complicado. Tu "tabla temporal" en es una tabla real en el sentido que no forma parte de ninguna base de datos. Tal y como lo planteas creo que no lo vas a poder hacer. Yo veo dos soluciones. Si el sistema de base de datos soporta tablas temporales como SQLServer o MySql (creo que IB también), puedes crear tu tabla como temporal en el servidor y entonces efectuar tu consulta sobre ella. Otra opción mucho más sencilla es, si lo que quieres hacer con la consulta es solamente obtener algunos registros dada una condición, filtrar tu MemoryTable con esa condición: Código:
MiTabla.Filter := 'MiCampo=MiValor'; |
Realmente lo unico que quiero es ordenar los datos de la tabla, no filtrar...
Se puede? |
Bueno, eso lo tendrías que mirar en la documentación del componente... es posible que tenga alguna opción para ordenar por algún campo.
Si lo que quieres es ordenarlo solamente una vez (no que el usuario cambie el orden a su antojo) puedes poner una clausula ORDER BY en la consulta inicial |
Pero esto mismo no podias obtenerlo directamente con una sentencia SQL en el servidor de base de datos???
No tengo idea de como "juntas" los datos de las dos tablas, pero o es un join o es un union en el server, con lo que en la misma consulta SQL podes añadir una clausula Order by para que los datos vengan de una vez ordenados... no?? Si te interesa, pero no sabes como hacerlo, te recomiendo la lectura de un buen libro o manual de SQL, y luego podrias venir aqui con tus dudas. Hasta luego. ;) |
Pero que no te habia respondido ya lo mismo en este otro hilo. Me parece que solo le has cambiado sabor a la misma pregunta, para la que de todas formas ya te habia dado la solución. Tan solo has intentado aplicarla??
:confused: :confused: :confused: |
La franja horaria es GMT +2. Ahora son las 02:04:41. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi