Ich habe Teilinformationen gesehen, alte Informationen, aber nichts ist so gut wie die tatsächlichen Beispieldateien mit kurzen Kommentaren, die ich lokal habe.
Ich muss die genaue Beziehung zwischen odbc.ini
und verstehen odbcinst.ini
. Oberflächlich gesehen ist es ziemlich offensichtlich - oben in der odbc.ini
Datei befindet sich ein Abschnitt wie:
[ODBC Data Sources]
MYDSN = MyDriverName
...
Ich bin mir jedoch nicht sicher, ob ich beispielsweise Einstellungen entweder im Treiber- oder im DSN-Bereich vornehmen kann.
1) Ich habe eine Zeile Driver = /path/to/file/.so
in beiden Dateien und die Werte unterscheiden sich manchmal. Macht das überhaupt Sinn? Wenn ja, welche herrscht vor?
2) Ist odbcinst.ini
ein JavaScript-ähnlicher "Prototyp" für odbc.ini
? Mit anderen Worten, wenn ich eine Reihe von DSNs mit gemeinsamen Einstellungen erstelle, kann ich gemeinsame Einstellungen von odbc.ini
in heraufstufen odbcinst.ini
?
3) Was ist der Unterschied zwischen Driver
und Setup
in odbcinst.ini
? Sie scheinen die gleichen Werte zu haben. Sind diese Einstellungen datenbankspezifisch oder universell?
Antworten:
Ich verwende
FreeTDS
onDebian
, um einephp
gesteuerte Website mit einerMS-SQL Server 2005
Datenbank zu verbinden .Die Erklärung, die ich den Konfigurationsdateien geben kann:
/etc/odbc.ini
Enthält die Instanz, auf die im Handler verwiesen wird (z. B.
php
), der eine Verbindung zur Datenbank herstellt (siehe Beispiel unten). Die Konfiguration definiert den Server, zu dem eine Verbindung hergestellt werden muss.- -
/etc/odbcinst.ini
Enthält die Konfiguration für den
Driver
Abschnitt inodbc.ini
.- -
show-companies.php
Beispielcode
php
, um zu demonstrieren, wie ich die Verbindung eingerichtet und verwendet habe.etc .. etc ..
Ich bin sicher, dass es viele andere Variablen gibt, die festgelegt und verwendet werden können, aber dies ist die einfachste Erklärung, die ich für die Dateien geben kann, nach denen Sie gefragt haben.
quelle
Wenn Sie sich nur Unix-Implementierungen ansehen, erhalten Sie einige interessante Ideen zur Funktionsweise von ODBC. Keine dieser Implementierungen ist zu 100% mit der Referenzimplementierung unter Windows vergleichbar, die vom Betreuer der ODBC-Spezifikation, dh Microsoft, erstellt wurde .
Unter Unix gibt es zwei ODBC-Treibermanager. iODBC , dessen Dokumentation für diese Frage relevant ist , wird von meinem Arbeitgeber gepflegt und unterstützt. UnixODBC ist das andere und wurde in anderen Antworten diskutiert. Diese sollen APIs sein, die einander und der Windows-Implementierung entsprechen, da beide plattformunabhängige Implementierungen des Standards sind.
In einfachen Worten,
odbcinst.ini
ist eine Registrierungs- und Konfigurationsdatei für ODBC-Treiber in einer Umgebung, währendodbc.ini
es sich um eine Registrierungs- und Konfigurationsdatei für ODBC-DSNs (Datenquellennamen) handelt, die normalerweise auf in der anderen registrierten Treibern basiert.Sie hatten einige spezifische Fragen ...
Die
Driver = /path/to/file.so
sollten in beiden Dateien im Allgemeinen gleich sein, wenn beide als Pfade ausgedrückt werden. Inodbc.ini
kann sich dieser Eintrag stattdessen dort befinden,Driver = {name of driver}
wo der Name wie indiziert istodbcinst.ini
. Im Allgemeinen haben Einstellungenodbc.ini
Vorrang vor widersprüchlichen Einstellungen,odbcinst.ini
wenn solche vorhanden sind.Nein,
odbcinst.ini
ist auf diese Weise kein "Prototyp".odbcinst.ini
Einstellungen sind für den Treiber relevant , jedoch nicht für die auf diesem Treiber basierenden DSNs .In
odbcinst.ini
derDriver =
bezieht sich auf die Treiberbibliothek, undSetup =
zum Setup - Bibliothek. Letzteres ist völlig optional, und wenn es vorhanden ist, kann es während einer Datenverbindung verwendet werden, muss es aber nicht. Es ist in erster Linie für die Verwendung durch einen ODBC-Administrator beim "Einrichten" solcher Verbindungen vorgesehen, um als DSNs gespeichert zu werden. Manchmal befinden sich diese Bibliotheken in derselben physischen Datei, müssen es aber nicht sein und befinden sich beispielsweise normalerweise nicht in der OS X-Umgebung.quelle
Okay, einfacher Unterschied zwischen odbcinst.ini und odbc.ini von der unixodbc- Site, die der erste Treffer bei Google ist:
quelle
Die Handbücher sollen hier sein (
Manuals
dann klickenUser Manual
). Aber leider sind die Links fürAdministrator Manual
und dieProgrammer Manual
kaputt. (Ich habe dies gemeldet und mir wurde gesagt, dass sie repariert werden.)Also für jetzt...
Die fehlenden Handbücher werden gefunden, indem Sie unixODBC-2.3.4.tar.gz von http://www.unixodbc.org/ herunterladen und dann mit dem Archivmanager (oder ähnlichem) öffnen und diese drei Handbücher ansehen:
quelle