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/.so
in entrambi i file e i valori a volte differiscono. Ha senso anche questo? In tal caso, quale prevale?
L' Driver = /path/to/file.so
dovrebbero 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.ini
prevalgono sulle impostazioni in conflitto odbcinst.ini
se esistono.
2) È odbcinst.ini
un "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.ini
in odbcinst.ini
?
No, odbcinst.ini
non è un "prototipo" in questo modo. odbcinst.ini
le impostazioni sono rilevanti per il driver , ma non per i DSN basati su quel driver.
3) Qual è la differenza tra Driver
e Setup
in 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.