![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Crear DataSet en tiempo de ejecución.
Hola a todos,
mi pregunta es la siguiente. Es posible crear un DataSet en tiempo de ejecución para después destruírlo?? Mi problema viene a raiz de exportar los datos de una query a un fichero .csv. Tengo una sola query (y tiene que ser así) pero he de exportar los datos a 4 ficheros distintos dependiendo del valor de un campo. Exportarlos a un fichero de texo es muy fácil ya que utilizo un StringList y voy insertando linea a línea según recorro el DataSet......el problema es a la hora de exportarlo a Excel, ya que exporto el DataSet completo. Había pensado que quizás sería posible crear 4 DataSouces en tiempo de ejecución para poder así ir insertando en cada uno sus datos correspondientes para luego exportarlos por separado al fichero .csv y destruírlos. No se si eso es viable o se puede hacer. Agradecería cualquier ayuda. Un saludo. |
#2
|
|||
|
|||
claro que se puede.
Puedes crear en tiempo de ejecucion tablas, datasources, querys y lo que sea. |
#3
|
|||
|
|||
Muchas gracias. Probaré a hacerlo de esta manera.
Un saludo. |
#4
|
||||
|
||||
El codigo es el correcto pero falta colocar el "salvadidas" de las excepciones:
Código:
var Tabla: TTable; DataSource: TDataSource;begin Tabla:=TTable.Create(nil); DataSource:=TDataSource.Create(nil); Try //usamos los componentes Finally DataSource.Free; Tabla.Free; end;end;
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#5
|
|||
|
|||
Estoy completamente de acuerdo con lo de la excepción y lo pondré en práctica. Me he puesto con ello pero me ha asaltado una duda, una vez creaod el DataSet y extraídos los campos (registro por registro) de la query, como inserto en el nuevo DataSet??. Tengo algo parecido a esto:
while not qQuery.Eof do begin Campo1 := qQuery.FieldByName('CAMPO1').AsString; Campo2 := qQuery.FieldByName('CAMPO2').AsString; Campo3 := qQuery.FieldByName('CAMPO3').AsString; if (Campo1 = 'codigo') then begin AsignaValores; // Toma los valores de los campos en otro procedure Listado1.Add(Linea); // Antiguamente añadía una línea a un TStringList end else if (Campo1 = 'codigo 2') then begin AsignaValores; Listado2.Add(Linea) end ...... El caso es que en lugar de añadir líneas a un TStringList para crear un fichero .txt necesito añadir los registros a un TDataSet creado en tiempo de ejecución para poder transformarlo en un fichero .csv.......como podría hacerlo?? Gracias por vuestras respuestas. Un saludo. |
#6
|
||||
|
||||
Aqui dejo este código para tí y mis amigos del Club
FTPUPDATER.zip que hace precisamente lo que quieres: Convertir un dbf a CSV. Te aclaro que este es parte de un programa mas grande que convíerte de DBF a tablas MySQL. Por si solo no funciona, pero el código y las rutinas te servirán para estudiar como hace la conversión...Me hubiera gustado hacer un componente y ponerlo aqui, pero como dicen en los libros: "ese tema sale del ámbito de este post" ![]()
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear Objetos en tiempo de ejecucion | mmtaffarel | OOP | 8 | 14-01-2024 17:55:25 |
Crear formularios en tiempo de ejecución | Caro | Varios | 2 | 25-08-2005 14:27:39 |
Crear Tabla en Tiempo de ejecucion | alcides | Varios | 4 | 01-07-2005 20:23:52 |
Crear un DSN en tiempo de ejecucion | neyvan | Conexión con bases de datos | 7 | 21-05-2004 17:41:45 |
Crear un TListView en tiempo de ejecución | finrold | Varios | 2 | 15-03-2004 10:29:17 |
![]() |
|