Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 14 June 2021 11:58

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

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 smile


Sylvain M.

Hors ligne

 

#2 Mon 14 June 2021 12:33

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1132

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: 981

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: 981

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

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 567
Site web

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: 981

Re: Spatialite / SQlite en ligne de commande sur Windows

Merci jmarsac big_smile

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: 981

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

 

Pied de page des forums

Powered by FluxBB