Utilisation de la base SQLite avec sqlite3.exe :
Page de téléchargement de sqlite3 : https://www.sqlite.org/2018/sqlite-tools-win32-x86-3220000.zip
Page de documentation de l'interpréteur de commande sqlite3.exe : https://www.sqlite.org/cli.html
Exemples de commandes
On travaille ici sur une base BaseTest.db présente dans le répertoire de travail C:\Ldsystem\temp et on suppose que l'interpréteur de commande sqlite3.exe a aussi été copié dans ce répertoire.
Lancer l'interpréteur de commande SQLIte3 sur la base SQLite, depuis une fenêtre de commande Windows |
CD C:\Ldsystem\Temp sqlite3.exe Basetest.db |
Contrôler l'intégrité de la base L'affichage en retour doit être : Test generated by -- init 0 erros out of 6 test |
.selftest |
Donner le hash de la base entière Attention : par défaut, contrairement à ce qui est dit dans la doc, le hash utilisé est SHA3-224. Si on veut du 256, il faut le spécifier comme ci-contre. |
.sha3sum -SHA3-256 |
Récupérer dans un fichier nommé BaseTest.sql un script SQL permettant de recréer l'ensemble de la base (pour import dans MySQL par exemple) |
.once "C:/ldsystem/Temp/BaseTest.sql" .dump |
Lister toutes les tables contenues dans la base |
.tables |
Connaitre le schéma d'une des tables de la base (ici la table PARDET) |
.schema PARDET |
Exporter le contenu d'une table dans un fichier au format texte tabulé, ici la table PARDET Le fichier résultant peut être ouvert avec Excel. |
.headers on .mode tabs .once "C:/Ldsystem/Temp/PARDET.txt" select * from pardet; |
En revanche, dans l'interpréteur de commandes SQLite3.exe, le séparateur doit être / (comme sur Unix).
Ainsi, le plus simple est de créer un répertoire contenant l'interpréteur lui-même et la base SQLite. On peut ensuite omettre tout nom de chemin. Les fichiers créés par les différentes commandes le seront systématiquement dans ce répertoire.
Autres éléments à connaitre pour travailler avec cet interpréteur de commande
L'export direct vers Excel proposé par l'interpréteur de commande via la commande .excel ne donne pas un résultat satisfaisant, car on perd les voyelles accentuées.
En effet, SQLite3.exe crée dans ce cas un fichier au format csv encodé en UTF8, mais Excel ne reconnait pas automatiquement cet encodage UTF8 et l'ouvre comme s'il s'agissait d'un fichier encodé en ANSI.
Il est donc préférable d'utiliser l'export en fichier texte tabulé, via la commande .mode tabs décrite plus haut. A l'ouverture de ce fichier dans Excel, l'assistant d'importation de texte est automatiquement proposé et l'encodage UTF8 est correctement détecté. Il suffit de choisir l'option Délimité à l'étape d'importation, puis le séparateur Tabulation à l'étape 2 et de valider à l'étape 3.
Transformation d'une liste de tickets de SQLite vers une liste JSON puis tableau CSV
Pour exporter les tickets d'une période donnée depuis la base SQLite, au format JSON, il faut passer les commandes suivantes dans l'interpréteur SQLite :
.mode tabs
.once "Tickets.json"
select DGITCKEMPR from DGITCK where VTEENTDIMP between '20180101' and '20180228235959'
Il faut ensuite modifier légèrement le fichier résultant : ajouter un caractère [ en ligne 1 et un caractère ] en dernière ligne.
On peut alors convertir ce fichier en format « texte tabulé », via l'outil disponible à l'adresse : https://json-csv.com/
Le fichier obtenu peut ensuite être ouvert avec Excel, comme n'importe quel fichier texte avec délimiteur de colonne.
Notez qu'un ticket composé de plusieurs lignes est présenté en plusieurs lignes, mais toutes les données de l'en-têtes ne sont présentes que sur la 1ère ligne de chaque ticket. Ainsi, les montants peuvent être sommés sans problème.