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.inijest plikiem rejestru i konfiguracji dla sterowników ODBC w środowisku, podczas gdy odbc.inijest 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/.sow 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.soOgół powinna być taka sama w obu plików, gdy obie są wyrażone jako ścieżki. W odbc.initym wpisie może zamiast tego znajdować Driver = {name of driver}się nazwa indeksu odbcinst.ini. Ogólnie mówiąc, ustawienia odbc.inimają pierwszeństwo przed ustawieniami sprzecznymi, odbcinst.inijeś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.inido odbcinst.ini?
Nie, odbcinst.ininie jest w ten sposób „prototypem”. odbcinst.iniustawienia odnoszą się do sterownika , ale nie do DSN opartych na tym sterowniku.
3) Jaka jest różnica pomiędzy Driveri Setupw odbcinst.ini? Wydają się mieć te same wartości. Czy te ustawienia są specyficzne dla bazy danych, czy są uniwersalne?
W odbcinst.iniThe 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.