Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Importar fichero CSV en SQLite en tiempo de ejecución (https://www.clubdelphi.com/foros/showthread.php?t=95086)

Arturo.Molina 22-02-2021 13:28:21

Importar fichero CSV en SQLite en tiempo de ejecución
 
Hola a todos,
estoy usando Lazarus para crear un programa que maneja una base de datos SQLite3 sobre Windows.

A través del método ExecuteDirect puedo crear sin problemas en tiempo de ejecución la base de datos que usará mi programa.

El problema es que me pasan los datos para una de las tablas en un archivo CSV que se debe incorporar a la base de datos en el PC donde se va a ejecutar el programa, así que debo importar los datos en tiempo de ejecución.

He intentado hacerlo a través de un TProcess con este código:


Código Delphi [-]
UnProceso := TProcess.Create(nil);

UnProceso.Executable := 'cmd';

UnProceso.Parameters.Add( 'sqlite3.exe' );

UnProceso.Options := UnProceso.Options + [poWaitOnExit];

UnProceso.Execute;

UnProceso.Free;


Esto me abre una ventana de comandos cmd de Windows, pero no llega a ejecutar el programa sqlite3.exe (está en el mismo directorio del programa).

Y, además, si se ejecutara el programa sqlite3.exe, se activa el "modo comando" de SQLite ¿como le paso a la ventana cmd la orden para importar los datos?
Código SQL [-]
.import libros.csv listado


Saludos

Arturo.Molina 22-02-2021 13:30:49

Vaya, he duplicado el mensaje, lo siento.


Algún Admin que borre uno de ellos.


Saludos

mamcx 22-02-2021 15:42:23

Para ejecutar comandos directamente de un archivo:

https://database.guide/5-ways-to-run...m-file-sqlite/

y pasando el sql directo:

Código SQL [-]
sqlite3 example.db 'SELECT * FROM table;'

P.D: sqlite en versiones reciente tiene de "fabrica" un modulo de lectura csv, con su funcionalidad de tablas virtuales:

https://www.sqlite.org/csv.html

Arturo.Molina 23-02-2021 12:31:19

Muchas gracias mamcx, he usado la opción de ejecutar directamente desde un archivo la importación.


Saludos


La franja horaria es GMT +2. Ahora son las 14:44:38.

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