web-dev-qa-db-fra.com

Vous recherchez une bonne documentation de fichiers ODBC.INI et ODBCINST.INI sur Linux

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?

11
Leonid

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.

9
captcha

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 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?

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 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?

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.

4
TallTed

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.

1
Ahmed Masud

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
0
Elliptical view