Jika Anda hanya melihat implementasi Unix, Anda akan mendapatkan beberapa ide menarik tentang cara kerja ODBC. Tidak satu pun dari implementasi ini yang 100% dapat dibandingkan dengan implementasi referensi pada Windows, diproduksi oleh pengelola spec ODBC, yaitu Microsoft .
Ada dua manajer driver ODBC yang biasa ditemukan di Unix. iODBC , yang dokumentasinya relevan dengan pertanyaan ini ada di sini , dikelola dan didukung oleh majikan saya. UnixODBC adalah yang lain, dan dibahas dalam jawaban lain. Ini dimaksudkan untuk menjadi setara API satu sama lain dan untuk implementasi Windows, karena keduanya merupakan implementasi platform-agnostik dari standar.
Secara sederhana, odbcinst.iniadalah file registri dan konfigurasi untuk driver ODBC di lingkungan, sedangkan odbc.inifile registri dan konfigurasi untuk ODBC DSN (Nama Sumber Data), biasanya berdasarkan driver yang terdaftar di yang lain.
Anda punya beberapa pertanyaan spesifik ...
1) Saya memiliki garis Driver = /path/to/file/.sodi kedua file dan nilainya terkadang berbeda. Apakah ini masuk akal? Jika demikian, mana yang berlaku?
The Driver = /path/to/file.soumumnya harus sama di kedua file ketika keduanya dinyatakan sebagai jalur. Di odbc.ini, entri ini sebagai gantinya di Driver = {name of driver}mana nama tersebut diindeks odbcinst.ini. Secara umum, pengaturan di odbc.inimenang atas pengaturan yang bertentangan di odbcinst.inijika ada.
2) Apakah odbcinst.ini"prototipe" seperti JavaScript dibuat untuk odbc.ini? Dengan kata lain, jika saya menciptakan sejumlah DSNs dengan pengaturan umum, dapat saya mempromosikan pengaturan umum dari odbc.inidalam odbcinst.ini?
Tidak, odbcinst.inibukan "prototipe" dengan cara ini. odbcinst.inipengaturan relevan untuk driver , tetapi tidak untuk DSN berdasarkan driver itu.
3) Apa perbedaan antara Driverdan Setupdi dalam odbcinst.ini? Mereka tampaknya memiliki nilai yang sama. Apakah pengaturan ini khusus untuk database atau universal?
Di odbcinst.ini, Driver =merujuk ke pustaka driver, dan Setup =ke pustaka pengaturan. Yang terakhir ini sepenuhnya opsional, dan jika memang ada, mungkin tetapi tidak perlu digunakan selama koneksi data; itu terutama dimaksudkan untuk digunakan oleh Administrator ODBC ketika "mengatur" koneksi seperti itu, untuk disimpan sebagai DSN. Kadang-kadang, pustaka ini ditemukan dalam file fisik yang sama, tetapi tidak harus, dan, misalnya, biasanya tidak ada di lingkungan OS X.