FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
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). |
#3
|
|||
|
|||
Si puedo crear esos campos calculados en el dataset origen sin cerrarlo, de coña. Pero creo que eso no es posible, me equivoco?
|
#4
|
||||
|
||||
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). |
#5
|
|||
|
|||
imposible, es un dataset creado por codigo en tiempo de ejecucion
|
#6
|
||||
|
||||
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). |
#7
|
|||
|
|||
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 |
|
|
|