Se guardi solo le implementazioni di Unix, otterrai alcune idee interessanti su come funziona ODBC. Nessuna di queste implementazioni è paragonabile al 100% all'implementazione di riferimento su Windows, prodotta dal manutentore della specifica ODBC, ovvero Microsoft .
Esistono due gestori di driver ODBC che si trovano comunemente su Unix. iODBC , la cui documentazione relativa a questa domanda è qui , è gestita e supportata dal mio datore di lavoro. UnixODBC è l'altro ed è stato discusso in altre risposte. Queste sono pensate per essere API equivalenti tra loro e all'implementazione di Windows, poiché entrambe sono implementazioni indipendenti dalla piattaforma dello standard.
In termini semplici, odbcinst.iniè un file di registro e di configurazione per i driver ODBC in un ambiente, mentre odbc.iniè un file di registro e di configurazione per i DSN ODBC (Data Source Names), in genere basato su driver registrati nell'altro.
Hai avuto alcune domande specifiche ...
1) Ho una riga Driver = /path/to/file/.soin entrambi i file e i valori a volte differiscono. Ha senso anche questo? In tal caso, quale prevale?
L' Driver = /path/to/file.sodovrebbero essere generalmente la stessa in entrambi i file quando entrambi sono espressi come percorsi. In odbc.ini, questa voce potrebbe invece essere Driver = {name of driver}dove il nome è come indicizzato odbcinst.ini. In generale, le impostazioni odbc.iniprevalgono sulle impostazioni in conflitto odbcinst.inise esistono.
2) È odbcinst.iniun "prototipo" simile a JavaScript per odbc.ini? In altre parole, se sto creando un numero di DSN con impostazioni comuni, posso promuovere impostazioni comuni da odbc.iniin odbcinst.ini?
No, odbcinst.ininon è un "prototipo" in questo modo. odbcinst.inile impostazioni sono rilevanti per il driver , ma non per i DSN basati su quel driver.
3) Qual è la differenza tra Drivere Setupin odbcinst.ini? Sembrano avere gli stessi valori. Queste impostazioni sono specifiche del database o sono universali?
In odbcinst.ini, il si Driver =riferisce alla libreria dei driver e Setup =alla libreria di installazione. Quest'ultimo è del tutto facoltativo e, quando esiste, potrebbe non essere necessario utilizzarlo durante una connessione dati; è destinato principalmente all'uso da parte di un amministratore ODBC quando "imposta" tali connessioni, da salvare come DSN. A volte, queste librerie si trovano nello stesso file fisico, ma non è necessario che lo siano e, ad esempio, in genere non si trovano nell'ambiente OS X.