Si vous ne regardez que les implémentations Unix, vous aurez des idées intéressantes sur le fonctionnement d'ODBC. Aucune de ces implémentations n'est 100% comparable à l'implémentation de référence sur Windows, produite par le mainteneur de la spécification ODBC, c'est-à-dire Microsoft .
Il existe deux gestionnaires de pilotes ODBC couramment trouvés sur Unix. iODBC , dont la documentation pertinente à cette question est ici , est maintenue et prise en charge par mon employeur. UnixODBC est l'autre, et a été discuté dans d'autres réponses. Ceux-ci sont censés être équivalents à l'API les uns aux autres et à l'implémentation de Windows, car les deux sont des implémentations indépendantes de la plate-forme de la norme.
En termes simples, il odbcinst.ini
s'agit d'un fichier de registre et de configuration pour les pilotes ODBC dans un environnement, tandis qu'il odbc.ini
s'agit d'un fichier de registre et de configuration pour les DSN ODBC (Data Source Names), généralement basé sur des pilotes enregistrés dans l'autre.
Vous aviez quelques questions spécifiques ...
1) J'ai une ligne Driver = /path/to/file/.so
dans les deux fichiers et les valeurs diffèrent parfois. Est-ce même logique? Si oui, lequel prévaut?
Le Driver = /path/to/file.so
devrait généralement être le même dans les deux fichiers lorsque les deux sont exprimés sous forme de chemins. Dans odbc.ini
, cette entrée peut être à la place Driver = {name of driver}
où le nom est tel qu'indexé odbcinst.ini
. De manière générale, les paramètres de odbc.ini
prévalent sur les paramètres conflictuels dans le odbcinst.ini
cas échéant.
2) Un odbcinst.ini
"prototype" de type JavaScript est-il prévu odbc.ini
? En d'autres termes, si je crée un certain nombre de DSN avec des paramètres communs, puis-je promouvoir des paramètres communs de odbc.ini
en odbcinst.ini
?
Non, ce odbcinst.ini
n'est pas un "prototype" de cette façon. odbcinst.ini
les paramètres sont pertinents pour le pilote , mais pas pour les DSN basés sur ce pilote.
3) Quelle est la différence entre Driver
et Setup
en odbcinst.ini
? Ils semblent avoir les mêmes valeurs. Ces paramètres sont-ils spécifiques à la base de données ou sont-ils universels?
Dans odbcinst.ini
, le Driver =
fait référence à la bibliothèque de pilotes et Setup =
à la bibliothèque de configuration. Ce dernier est entièrement facultatif, et lorsqu'il existe, il peut mais ne doit pas être utilisé lors d'une connexion de données; il est principalement destiné à être utilisé par un administrateur ODBC lors de la "configuration" de telles connexions, pour être enregistré en tant que DSN. Parfois, ces bibliothèques se trouvent dans le même fichier physique, mais elles n'ont pas besoin de l'être et, par exemple, ne se trouvent généralement pas dans l'environnement OS X.