Selon la page des pilotes nixODBC (tout droit sortie des années 90), je devrais télécharger les pilotes SQLite3 à partir de: http://www.ch-werner.de/sqliteodbc
Les instructions pour construire sqliteodbc
à partir du code source fourni sur cette page sont disponibles ici: http://www.ch-werner.de/sqliteodbc/html/index.html
Selon cette page, nous devrions décompresser la source dans un répertoire, puis exécuter les commandes suivantes:
1) ./configure
2) make
3) make install
Cependant, lorsque je lance ./configure
dans le répertoire, le message d'erreur suivant s'affiche:
configure: error: No usable SQLite header/library on this system
Que devrais-je faire?
Pour traiter configure: error: No usable SQLite header/library on this system
, il faut:
Sudo apt-get install libsqlite3-dev
Vous pouvez toujours obtenir l'erreur suivante après cela:
configure: error: ODBC header files and/or libraries not found
Dans ce cas, faites-vous:
Sudo apt-get install unixodbc-dev unixodbc-bin unixodbc
Certains des packages sont peut-être déjà répertoriés, mais si vous obtenez une erreur, il vous manque unixodbc-dev
.
Bon, maintenant vous devriez:
1) ./configure && make
sans problèmes
2) au lieu de make install
consultez les instructions ici pour tout savoir sur checkinstall
: j’ai installé un programme en obtenant son code source, puis en exécutant `Sudo make install`; comment faire `apt-get` le sait?
Maintenant, si vous lisez plus loin dans les [instructions] fournies pour le pilote sqliteodbc
, nous devons:
1) configurer correctement odbcinst.ini
Ouvrez le odbcinst.ini
dans un éditeur (vous aurez probablement besoin des capacités de superutilisateur, et vous aurez besoin de savoir où se trouve le fichier - habituellement, il se trouve dans/etc, donc nous pouvons faire: Sudo gedit /etc/odbcinst.ini
), et ajoutez ce qui suit:
[SQLite3]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=4
Configurez Description
avec la chaîne de votre choix, mais assurez-vous que Driver
et Setup
ont le bon chemin d'accès au *.so
fourni par le pilote sqliteodbc
. . Afin de déterminer/confirmer quels *.so
ont été fournis: soit grep
ou tout simplement ouvrir /usr/local/lib/
et vérifiez quels fichiers *.so
vous avez. Par exemple, conformément à l'exemple de l'instruction, vous devriez indiquer /usr/local/lib/libsqliteodbc.so
, mais je n'avais que /usr/local/lib/libsqlite3odbc.so
. Si vous avez les deux, vous pouvez faire deux entrées comme ceci:
[SQLite3]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=2
[SQLite]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqliteodbc.so
Setup=/usr/local/lib/libsqliteodbc.so
Threading=2
Assurez-vous également de choisir une valeur décente pour le filetage. Par exemple, si vous avez 8 cœurs, peut-être que Threading=4
aura un sens.
Dans l’intérêt de l’étape 2, je vais configurer les choses comme suit:
[MYGOOFYSQLITE3DRIVERTAG]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=2
2) facultatif: configurez un DNS dans ~/.odbc.ini
--- suivez simplement les instructions, mais notez que vous pouvez également utiliser SQLite/3 DNS-less. Par exemple, en utilisant pyodbc
et Python:
import pyodbc
connection_string = "Driver=MYGOOFYSQLITE3DRIVERTAG;Database=/path/to/database.db"
connection = pyodbc.connect(connection_string)
Notez que pour la touche Driver
, j'ai fait référence à la balise que j'ai donnée au pilote dans odbcinst.ini
. Peut-être que vous voulez être maladroit, peut-être que non - le fait est que la clé dépend de ce que vous avez configuré, ou de ce qu'un autre programme a automatiquement configuré, donc si vous avez besoin de savoir comment s'appelle le pilote, regardez-le. dans odbcinst.ini
.
Pour plus de détails sur ce qui peut aller dans la chaîne de connexion, veuillez vous reporter aux instructions du pilote sqliteodbc
dont nous avons déjà parlé.