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 23-07-2004
santisg santisg is offline
Registrado
 
Registrado: jul 2004
Posts: 4
Poder: 0
santisg Va por buen camino
Copia TClientDataSet

Hola,

Hace algunos días que le llevo dando vueltas a un asunto...
Resulta que necesito copiar los datos de un TClientDataSet abierto a otro
cerrado pero que tiene algunos campos calculados ya creados. La gracia esta
en que estos campos se conserven, cosa que no pasa si asigno la variable
DATA de uno al otro.

He llegado a la conclusión de que para poder hacer esto es necesario que
todos los campos del dataset que tiene los datos esten ya creados en el
dataset destino antes de hacer la copia. De esta manera no se machacan los
nuevos campos.

Encontre unas rutinas por internet que hacian mas o menos esto y aunque
funciona, me da problemas con algunos datasets:
http://www.distribucon.com/download/midas/fieldinfo.zip

El codigo de esas rutinas es algo complejo, parece mentira que haya que
escribir tanto codigo para duplicar la estructura de los campos de un
dataset a otro. Alguien sabe si existe alguna manera sencilla de hacer esto?

Gracias.
Responder Con Cita
  #2  
Antiguo 23-07-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

¿ No te sirve clonar el ClientDataSet ?. Aunque deberás tener los campos calculados en los dos Clientdatasets. (En el primero los puedes tener desactivados, y activarlos en el ClientDataset clonado).

Consulta el método CloneCursor del ClientDataset.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 23-07-2004
santisg santisg is offline
Registrado
 
Registrado: jul 2004
Posts: 4
Poder: 0
santisg Va por buen camino
Si puedo crear esos campos calculados en el dataset origen sin cerrarlo, de coña. Pero creo que eso no es posible, me equivoco?
Responder Con Cita
  #4  
Antiguo 23-07-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

En efecto, no creo que puedas crearlos con el dataset abierto. Pero, ¿ no puedes crearlos en tiempo de diseño ?, si te molestan, simplemente dejalos inactivos.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #5  
Antiguo 23-07-2004
santisg santisg is offline
Registrado
 
Registrado: jul 2004
Posts: 4
Poder: 0
santisg Va por buen camino
imposible, es un dataset creado por codigo en tiempo de ejecucion
Responder Con Cita
  #6  
Antiguo 23-07-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

¿ Y no se pueden añadir los campos calculados antes de abrirlo ?. Además ¿ hay alguna razón especial para que no se pueda crear en tiempo de diseño ?.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #7  
Antiguo 23-07-2004
santisg santisg is offline
Registrado
 
Registrado: jul 2004
Posts: 4
Poder: 0
santisg Va por buen camino
Hola de nuevo

No se pueden crear antes de abrirlo porque el dataset me lo proporciona una funcion a la que llamo, le paso el nombre de la tabla y me devuelve el dataset ya abierto, es una funcion que no puedo modificar y cuyo codigo es demasiado complejo como para modificarlo, tampoco puedo prescindir de ella.

No puedo tenerlo en tiempo de diseño porque las funciones que estoy haciendo estan orientadas a formar parte de capas intermedias bien encapsuladas sin ningun componente visual. Tampoco puedo usar datamodules por por motivos varios.

Gracias por todo.
Santi
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 03:50:40.


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