Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-12-2010
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Unir 3 ClientDataSet

Buenas a todos, he estado buscando or el foro y por internet y no encuentro lo que quiero.

Tengo 3 clientdataset, de tres bases de datos distintas.

Lo que quiero es unirlos en uno, para así exportar el resultado a Excel, en un fichero txt separado por tabulaciones(esto ya lo tengo). Pero no se como hacerlo para generar solo un fichero.

No se si me exlicado bien.

Saludos.
Responder Con Cita
  #2  
Antiguo 07-12-2010
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Supongo que deberás hacerlo a mano...

- pones los 3 DataSets ordenados por los mismos campos
- Luego recorres los tres al mismo tiempo, verificando que la clave (los campos por los que se unen) coincidan.
- En donde no coincidan, deberás rellenar con blancos los lugares que le toca.

También se me ocurre hacerlo utilizando el DataSource.
Esto une el primer DataSet con el segundo y el tercero, pero no controla los que están en el segundo y en el tercero y no en el primero

Código Delphi [-]
{Los DataSource}
DSDataSet1.DataSet := DataSet1;
DSDataSet2.DataSet := DataSet2;
DSDataSet3.DataSet := DataSet3;

{La union de los DataSets a travez de su DataSource: 1-->2 y 1-->3}
DataSet2.DataSource := DSDataSet1;
DataSet3.DataSource := DSDataSet1;

{O puede unirse asi: 1-->2 y 2-->3}
DataSet2.DataSource := DSDataSet1;
DataSet3.DataSource := DSDataSet2;

{Abro las tablas}
DataSet1.Open;
DataSet2.Open;
DataSet3.Open;

{Recorro DataSet1 y en DataSet2 y 3 se posicionaran automaticamante}
while (not DataSet1.EOF) do
begin
   ...
   DataSet1.Next;
end;

Última edición por duilioisola fecha: 07-12-2010 a las 19:09:31.
Responder Con Cita
  #3  
Antiguo 07-12-2010
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Perdona pero no lo veo, será porque estoy jodido, ya que hoy es mi cumpleaños y en vez de pillarme el puente como toda la empresa llevo desde las 8 a.m. preparando un tema a contrareloj.

Espero mañana estar más espabilado y hacerlo.

Gracias de todas formas.
Responder Con Cita
  #4  
Antiguo 07-12-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Bueno, como hoy es tu cumpleaños (felicidades) y suponiendo que no haya duplicidad de registros y que la estructura de campos sea idéntica en los tres conjuntos de datos, te sugiero que uses el método AppendData:

Código Delphi [-]
ClientDataSet1.AppendData (ClientDataSet2.Data, True);

Nota: Considera que AppendData no copia los campos de tipo InternalCalc.

Saludos.
Responder Con Cita
  #5  
Antiguo 08-12-2010
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
Gracias por la respuesta.

Los campos son identicos y no hay registros duplicados. Lo probaré, lo que he hecho para salir del paso es crear 3 txt y unirlos.

Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Unir dos pdf nelem Internet 4 11-02-2009 14:03:07
unir un dbgrid rogerh PHP 2 29-06-2007 13:41:55
Unir dos DBgrids Nbull Conexión con bases de datos 2 02-02-2006 09:19:00
Unir Columnas vtdeleon SQL 4 15-06-2005 00:34:49
unir tablas Mario1980 Conexión con bases de datos 8 22-10-2004 10:36:45


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


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