J'ai vu des informations partielles, des informations anciennes, mais rien aussi bon que les exemples de fichiers 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, il est assez évident - au sommet de la odbc.ini
Dossier 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 que cela a même un sens? Si oui, ce qui prévaut?
2) est odbcinst.ini
un "prototype" de type javascript pour odbc.ini
? En d'autres termes, si je crée un certain nombre de DSN avec des paramètres communs, puis-je promouvoir les paramètres communs de odbc.ini
dans odbcinst.ini
?
3) Quelle est la différence entre Driver
et Setup
dans 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?
J'utilise FreeTDS
_ sur Debian
pour connecter un site Web php
-piloté à une base de données MS-SQL Server 2005
.
L'explication que je peux donner aux fichiers de configuration:
/etc/odbc.ini
Contient l'instance qui est appelée dans le gestionnaire (par exemple, php
) qui se connecte à la base de données (voir exemple ci-dessous). La configuration définit le serveur nécessaire à la connexion.
[freetds_odbc_connection]
Driver = FreeTDS
Description = test
Database = MyCompanyDb
Server = frodo
Readonly = Yes
Port = 1433
Trace = No
-
/etc/odbcinst.ini
Détient la configuration de la section Driver
dans odbc.ini
.
[FreeTDS]
Description = TDS connection
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
UsageCount = 1
FileUsage = 1
Trace = Yes
TraceFile = /tmp/odbcinst_tr
-
show-companies.php
Exemple php
code pour démontrer comment je configurais et utilisez la connexion.
$Host="freetds_odbc_connection";
$user="freetds";
$password="secretpassword";
$conn_id = odbc_connect($Host, $user ,$password) or die (odbc_errormsg());
$sql_companies = "SELECT * from AMGR_Client_Tbl WHERE Record_Type='1'";
$query_companies = odbc_exec($conn_id, $sql_companies);
while (odbc_fetch_row($query_companies))
{
$client_id = odbc_result($query_companies, 6);
$company_name = odbc_result($query_companies, 9);
}
etc..
Je suis sûr qu'il y a beaucoup d'autres variables pouvant être définies et utilisées, mais c'est l'explication la plus simple que je puisse donner des fichiers que vous avez posées sur.
Si vous ne regardez que des implémentations UNIX, vous obtiendrez des idées intéressantes sur comment ODBC oeuvres. Aucune de ces implémentations n'est comparable à 100% de la mise en œuvre de référence sur Windows, produite par le mainteneur de la SPEC ODBC, IE, Microsoft .
Il y a deux ODBC les gestionnaires de pilotes constatés couramment sur UNIX. IODBC , dont la documentation relative à cette question est ici , est maintenue et soutenue par Mon employeur. NIXODBC est l'autre et a été discuté dans d'autres réponses. Celles-ci sont censées être équivalentes à l'autre et à la mise en œuvre de Windows, comme les deux sont des implémentations à la plate-forme-agnostique de la norme.
En termes simples, odbcinst.ini
est un fichier de registre et de configuration pour ODBC pilotes dans un environnement, tandis que odbc.ini
est un fichier de registre et de configuration pour ODBC DSNS (noms de source de données), généralement basé sur les pilotes enregistrés dans l'autre.
Vous avez eu 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 que cela a même un sens? Si oui, ce qui prévaut?
Les Driver = /path/to/file.so
devrait généralement être la même dans les deux fichiers lorsque les deux sont exprimés en tant que chemins. Dans odbc.ini
, cette entrée peut plutôt être Driver = {name of driver}
où le nom est comme indexé dans odbcinst.ini
. En règle générale, réglages dans odbc.ini
prévaloir sur les paramètres contradictoires dans odbcinst.ini
si tel existe.
2) est
odbcinst.ini
un "prototype" de type javascript pourodbc.ini
? En d'autres termes, si je crée un certain nombre de DSN avec des paramètres communs, puis-je promouvoir les paramètres communs deodbc.ini
dansodbcinst.ini
?
Non, odbcinst.ini
n'est pas un "prototype" de cette manière. odbcinst.ini
Les paramètres sont pertinents pour le pilote , mais pas au DSNS Basé sur ce pilote.
3) Quelle est la différence entre
Driver
etSetup
dansodbcinst.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
, les Driver =
fait référence à la bibliothèque de pilotes et Setup =
à la bibliothèque de configuration. Ce dernier est entièrement facultatif, et quand il existe, il peut ne pas être utilisé pendant une connexion de données; Il est principalement destiné à être utilisé par un ODBC administrateur lors de la configuration de ces connexions, à enregistrer en tant que DSNS. Parfois, ces bibliothèques sont trouvées dans le même fichier physique, mais elles n'ont pas besoin d'être et, par exemple, ne sont généralement pas dans l'environnement OS X.
Ok différence simple entre ODBCInst.ini et ODBC.INI de NIXODBC site qui est le premier coup sur Google:
Le fichier système ODBCInst.ini contient des informations sur ODBC conducteurs à tous les utilisateurs et le fichier ODBC.ini contient des informations sur DSN disponibles pour tous les utilisateurs. Ces "systèmes DSN" sont utiles pour une application telle En tant que serveurs Web qui pourraient ne pas être exécutés comme un véritable utilisateur et ne disposeront pas de répertoire de base pour contenir un fichier .oDBC.ini.
Les manuels sont supposés être ici (cliquez sur Manuals
alors User Manual
). mais malheureusement les liens pour Administrator Manual
et le Programmer Manual
sont brisé. (J'ai signalé cela et on m'a dit qu'ils seront réparés.)
Alors pour l'instant...
Les manuels manquants sont trouvés par Téléchargement UNIXODBC-2.3.4.TAR.GZ de http://www.unixodbc.org/ puis ouvrez-le avec un gestionnaire d'archive (ou similaire) et regardez ces trois manuels:
/doc/AdministratorManual/index.html
/doc/ProgrammerManual/index.html
/doc/ProgrammerManual/Tutorial/index.html