Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 27-04-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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;
while not tabla1.eof do  // End of Table
begin
  ...
  tabla1.Next;
Saludos
Responder Con Cita
  #3  
Antiguo 27-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
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
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.
Responder Con Cita
  #4  
Antiguo 27-04-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
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';
  MiTabla.Filtered := true;
__________________
E pur si muove
Responder Con Cita
  #5  
Antiguo 27-04-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Realmente lo unico que quiero es ordenar los datos de la tabla, no filtrar...
Se puede?
Responder Con Cita
  #6  
Antiguo 27-04-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 22
marto Va por buen camino
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
__________________
E pur si muove
Responder Con Cita
  #7  
Antiguo 29-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 30-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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??

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 05:13:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi