Jeśli spojrzysz tylko na implementacje Uniksa, zobaczysz kilka interesujących pomysłów na temat działania ODBC. Żadna z tych implementacji nie jest w 100% porównywalna z referencyjną implementacją w systemie Windows, wyprodukowaną przez opiekuna specyfikacji ODBC, tj . Microsoft .
Istnieją dwa menedżery sterowników ODBC powszechnie spotykane w Uniksie. iODBC , którego dokumentacja dotycząca tego pytania znajduje się tutaj , jest prowadzona i wspierana przez mojego pracodawcę. UnixODBC jest drugim i został omówiony w innych odpowiedziach. Mają one być interfejsami API równoważnymi sobie nawzajem i implementacji systemu Windows, ponieważ oba są implementacjami standardu niezależnymi od platformy.
Mówiąc najprościej, odbcinst.ini
jest plikiem rejestru i konfiguracji dla sterowników ODBC w środowisku, podczas gdy odbc.ini
jest plikiem rejestru i konfiguracji dla DSN ODBC (Nazwy źródeł danych), zwykle opartych na sterownikach zarejestrowanych w innym.
Miałeś kilka szczegółowych pytań ...
1) Mam linię Driver = /path/to/file/.so
w obu plikach, a wartości czasami się różnią. Czy to w ogóle ma sens? Jeśli tak, co przeważa?
Driver = /path/to/file.so
Ogół powinna być taka sama w obu plików, gdy obie są wyrażone jako ścieżki. W odbc.ini
tym wpisie może zamiast tego znajdować Driver = {name of driver}
się nazwa indeksu odbcinst.ini
. Ogólnie mówiąc, ustawienia odbc.ini
mają pierwszeństwo przed ustawieniami sprzecznymi, odbcinst.ini
jeśli takie istnieją.
2) Czy odbcinst.ini
„prototyp” przypomina JavaScript odbc.ini
? Innymi słowy, jeśli tworzę wiele DSN o wspólnych ustawieniach, czy mogę promować wspólne ustawienia od odbc.ini
do odbcinst.ini
?
Nie, odbcinst.ini
nie jest w ten sposób „prototypem”. odbcinst.ini
ustawienia odnoszą się do sterownika , ale nie do DSN opartych na tym sterowniku.
3) Jaka jest różnica pomiędzy Driver
i Setup
w odbcinst.ini
? Wydają się mieć te same wartości. Czy te ustawienia są specyficzne dla bazy danych, czy są uniwersalne?
W odbcinst.ini
The Driver =
odnosi się do biblioteki sterownika, a Setup =
do biblioteki konfiguracji. Ten ostatni jest całkowicie opcjonalny, a gdy już istnieje, może, ale nie musi, być używany podczas połączenia danych; jest przeznaczony przede wszystkim do użytku przez administratora ODBC podczas „konfigurowania” takich połączeń, które mają być zapisane jako DSN. Czasami biblioteki te znajdują się w tym samym pliku fizycznym, ale nie muszą, i na przykład zazwyczaj nie znajdują się w środowisku OS X.