J'ai vu des informations partielles, des informations anciennes, mais rien de mieux que les fichiers d'exemple réels avec de brefs commentaires que j'ai localement.
J'ai besoin de comprendre la relation exacte entre odbc.ini
et odbcinst.ini
. Superficiellement, c'est assez évident - en haut du odbc.ini
fichier, il y a une section comme:
[ODBC Data Sources]
MYDSN = MyDriverName
...
Cependant, je ne sais pas si je peux, par exemple, avoir des paramètres dans le pilote ou la section DSN.
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?
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
?
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?
Réponses:
J'utilise
FreeTDS
surDebian
pour connecter unphp
site Web piloté à uneMS-SQL Server 2005
base de données.L'explication que je peux donner aux fichiers de configuration:
/etc/odbc.ini
Contient l'instance à laquelle il est fait référence dans le gestionnaire (par exemple
php
) qui se connecte à la base de données (voir l'exemple ci-dessous). La configuration définit le serveur auquel il doit se connecter.-
/etc/odbcinst.ini
Contient la configuration de la
Driver
section dansodbc.ini
.-
show-companies.php
Exemple de
php
code pour montrer comment j'ai configuré et utilisé la connexion.etc..
Je suis sûr qu'il existe de nombreuses autres variables qui peuvent être définies et utilisées, mais c'est l'explication la plus simple que je puisse donner des fichiers que vous avez demandés.
la source
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'ilodbc.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 ...
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. Dansodbc.ini
, cette entrée peut être à la placeDriver = {name of driver}
où le nom est tel qu'indexéodbcinst.ini
. De manière générale, les paramètres deodbc.ini
prévalent sur les paramètres conflictuels dans leodbcinst.ini
cas échéant.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.Dans
odbcinst.ini
, leDriver =
fait référence à la bibliothèque de pilotes etSetup =
à 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.la source
Okay simple différence entre odbcinst.ini et odbc.ini du site unixodbc qui est le premier hit sur google:
la source
Les manuels sont supposés être ici (cliquez
Manuals
ensuiteUser Manual
). Mais malheureusement, les liens pourAdministrator Manual
et leProgrammer Manual
sont rompus. (J'ai signalé cela et on m'a dit qu'ils seraient réparés.)Alors pour l'instant...
Les manuels manquants sont trouvés en téléchargeant unixODBC-2.3.4.tar.gz depuis http://www.unixodbc.org/ puis en l'ouvrant avec le gestionnaire d'archives (ou similaire) et en consultant ces trois manuels:
la source