#1 Mon 14 June 2021 11:58
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Spatialite / SQlite en ligne de commande sur Windows
Salut à tous,
J'aimerais écrire des lignes de commandes pour gérer les données d'une base Spatialite (=SQLite) en local sur mon PC, et sans passer par QGis.
J'ai installé QGis en version autonome sur mon PC Windows 10, et j'arrive bien à faire mes requête SQL via le Gestionnaire de BDD de QGis.
Est-ce que vous savez comment ouvrir la console SQLite / Spatialite depuis l'invite de commande Windows ? (et ainsi executer mes requête SQL via des script batch)
Merci pour votre aide
Sylvain M.
Hors ligne
#2 Mon 14 June 2021 12:33
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1149
Re: Spatialite / SQlite en ligne de commande sur Windows
Vous pouvez utiliser sqlite3.exe :
https://sqlite.org/cli.html
Hors ligne
#3 Mon 14 June 2021 15:03
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: Spatialite / SQlite en ligne de commande sur Windows
Super : merci Tumasgiu.
Par contre, je m'y perds dans les nombreux téléchargements dispos : https://sqlite.org/download.html
L'executable sqlite3.exe se trouve à quel lien ?
...
Ah je viens de trouver en écrivant : https://sqlite.org/2021/sqlite-tools-wi … 350500.zip
(pas de win64 par contre on dirait ?
Sylvain M.
Hors ligne
#4 Mon 14 June 2021 15:19
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: Spatialite / SQlite en ligne de commande sur Windows
Je me permets une question "bonus" : je tente d'enregistrer dans un .BAT une suite de commandes SQL.
Voici comment je commence :
Code:
"C:\monChemin\sqlite3.exe"
Jusque là, ça fonctionne et mon terminal affiche bien "sqlite>"
Ensuite, je voudrais enregistrer cette commande dans le BAT, pour ouvrir la BDD :
Code:
.open "C:/Donnees/MaBase.sqlite"
Si je le lance depuis le terminal précédemment ouvert, ça fonctionne.
Mais si je tente de l'enregistrer sur une nouvelle ligne de mon BAT, comme ci-dessous, ça ne marche pas :
Code:
"C:\monChemin\sqlite3.exe" .open "C:/Donnees/MaBase.sqlite"
Je ne suis pas un expert en BAT, et du coup je dois passer à côté d'un truc de base (peut-être un ";" en fin de ligne ?)
Sylvain M.
Hors ligne
#5 Mon 14 June 2021 15:58
Re: Spatialite / SQlite en ligne de commande sur Windows
Bonjour,
Code:
"C:\monChemin\sqlite3.exe" "C:/Donnees/MaBase.sqlite"
pour info :
Code:
c:\monchemin\sqlite3.exe --help Usage: sqlite3 [OPTIONS] FILENAME [SQL] FILENAME is the name of an SQLite database. A new database is created if the file does not previously exist. OPTIONS include: -bail stop after hitting an error -batch force batch I/O -column set output mode to 'column' -cmd COMMAND run "COMMAND" before reading stdin -csv set output mode to 'csv' -echo print commands before execution -init FILENAME read/process named file -[no]header turn headers on or off -help show this message -html set output mode to HTML -interactive force interactive I/O -line set output mode to 'line' -list set output mode to 'list' -mmap N default mmap size set to N -nullvalue TEXT set text string for NULL values. Default '' -separator SEP set output field separator. Default: '|' -stats print memory stats before each finalize -version show SQLite version -vfs NAME use NAME as the default VFS
Jean-Marie
Azimut
Hors ligne
#6 Mon 14 June 2021 16:12
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: Spatialite / SQlite en ligne de commande sur Windows
Merci jmarsac
Je venais de trouver une alternative en écrivant mes requêtes dans un fichier à part :
sqlite3 < commands.txt
avec un fichier commands.txt comme celui-ci :
Code:
.open "C:/MonChemin/MaBase.sqlite" .output resultat.csv .mode tabs SELECT * FROM MaTable;
Sylvain M.
Hors ligne
#7 Mon 14 June 2021 16:28
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: Spatialite / SQlite en ligne de commande sur Windows
Sinon, je viens aussi d'ajouter le dossier du fichier SQLite3.exe à la variable d'environnement PATH de Windows, comme ça plus besoin de spécifier le chemin de l'EXE
Sylvain M.
Hors ligne