部分的な情報、古い情報を見ましたが、ローカルにある短いコメント付きの実際のサンプルファイルほど優れていません。
odbc.ini
とodbcinst.ini
の正確な関係を理解する必要があります。表面的にはそれはかなり明白です-odbc.ini
ファイルの上部に次のようなセクションがあります:
[ODBC Data Sources]
MYDSN = MyDriverName
...
ただし、たとえば、ドライバーまたはDSNセクションのいずれかで設定を行うことができるかどうかはわかりません。
1)両方のファイルにDriver = /path/to/file/.so
という行があり、値が異なる場合があります。これは理にかなっていますか?もしそうなら、どちらが優勢ですか?
2)odbcinst.ini
はodbc.ini
のJavaScriptに似た「プロトタイプ」ですか?つまり、共通の設定を使用して多数のDSNを作成している場合、odbc.ini
からodbcinst.ini
に共通の設定を昇格できますか?
3)odbcinst.ini
のDriver
とSetup
の違いは何ですか?それらは同じ値を持っているようです。これらの設定はデータベース固有ですか、それともユニバーサルですか?
FreeTDS
でDebian
を使用して、php
駆動のWebサイトをMS-SQL Server 2005
データベースに接続しています。
私が設定ファイルに与えることができる説明:
/etc/odbc.ini
データベースに接続するハンドラー(例:php
)内で参照されるインスタンスを保持します(以下の例を参照)。構成は、接続する必要があるサーバーを定義します。
[freetds_odbc_connection]
Driver = FreeTDS
Description = test
Database = MyCompanyDb
Server = frodo
Readonly = Yes
Port = 1433
Trace = No
-
/etc/odbcinst.ini
odbc.ini
のDriver
セクションの構成を保持します。
[FreeTDS]
Description = TDS connection
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
UsageCount = 1
FileUsage = 1
Trace = Yes
TraceFile = /tmp/odbcinst_tr
-
show-companies.php
接続のセットアップと使用方法を示すphp
コードの例。
$Host="freetds_odbc_connection";
$user="freetds";
$password="secretpassword";
$conn_id = odbc_connect($Host, $user ,$password) or die (odbc_errormsg());
$sql_companies = "SELECT * from AMGR_Client_Tbl WHERE Record_Type='1'";
$query_companies = odbc_exec($conn_id, $sql_companies);
while (odbc_fetch_row($query_companies))
{
$client_id = odbc_result($query_companies, 6);
$company_name = odbc_result($query_companies, 9);
}
など。
設定して使用できる変数は他にもたくさんあると思いますが、これはあなたが尋ねたファイルについて私が与えることができる最も簡単な説明です。
Unixの実装だけを見ると、ODBCがどのように機能するかについて興味深いアイデアが得られます。これらの実装はいずれも、Windowsのリファレンス実装と100%比較できません。 ODBC仕様、つまりMicrosoft 。
2つのODBC Unixで一般的に見られるドライバマネージャーがあります。 iODBC で、この この質問に関連するドキュメントはここにあります 私の雇用主 nixODBC はもう一方であり、他の回答で議論されました。どちらも標準のプラットフォームに依存しない実装であるため、これらは互いに、およびWindows実装と同等のAPIであることを意味します。
簡単に言えば、odbcinst.ini
はODBC環境内のドライバのレジストリおよび構成ファイルであり、odbc.ini
はODBC DSN(データソース名)。通常、他に登録されているドライバーに基づいています。
特定の質問がいくつかありました...
1)両方のファイルに
Driver = /path/to/file/.so
という行があり、値が異なる場合があります。これは理にかなっていますか?もしそうなら、どちらが優勢ですか?
Driver = /path/to/file.so
は通常、両方がパスとして表現されている場合、両方のファイルで同じである必要があります。 odbc.ini
では、このエントリは代わりにDriver = {name of driver}
となる場合があります。ここで、名前はodbcinst.ini
でインデックス付けされています。一般的に、odbc.ini
の設定は、存在する場合、odbcinst.ini
の競合する設定よりも優先されます。
2)
odbcinst.ini
はodbc.ini
のJavaScriptに似た「プロトタイプ」ですか?つまり、共通の設定を使用して多数のDSNを作成している場合、odbc.ini
からodbcinst.ini
に共通の設定を昇格できますか?
いいえ、odbcinst.ini
はこのように「プロトタイプ」ではありません。 odbcinst.ini
設定はドライバーに関連しますが、そのドライバーに基づくDSNには関連しません。
3)
odbcinst.ini
のDriver
とSetup
の違いは何ですか?それらは同じ値を持っているようです。これらの設定はデータベース固有ですか、それともユニバーサルですか?
odbcinst.ini
では、Driver =
はドライバーライブラリを参照し、Setup =
はセットアップライブラリを参照します。後者は完全にオプションであり、存在する場合は、データ接続中に使用する必要がありますが、使用する必要はありません。これは主に、ODBC管理者がこのような接続を「設定」するときにDSNとして保存するために使用することを目的としています。これらのライブラリが同じ物理ファイルにある場合もありますが、 、たとえば、通常、OS X環境にはありません。
グーグルの最初のヒットである nixodbc サイトからのodbcinst.iniとodbc.iniの単純な違いはわかりました:
システムファイルodbcinst.iniには、すべてのユーザーが利用できるODBCドライバに関する情報が含まれています。odbc.iniファイルには、すべてのユーザーが利用できるDSNに関する情報が含まれています。これらの「システムDSN」は、実際のユーザーとして実行されていない可能性があるため、.odbc.iniファイルを含むホームディレクトリがないWebサーバーとして。
マニュアルは here であると想定されています(Manuals
をクリックしてからUser Manual
をクリックしてください)。 しかし、残念ながらAdministrator Manual
とProgrammer Manual
のリンクは壊れています。 (私はこれを報告し、それらは修正されるだろうと言われました。)
だから今のところ...
不足しているマニュアルは、 http://www.unixodbc.orgからunixODBC-2.3.4.tar.gzをダウンロードすることで見つかります。 / そして、それをアーカイブマネージャ(または同等のもの)で開き、次の3つのマニュアルを見てください。
/doc/AdministratorManual/index.html
/doc/ProgrammerManual/index.html
/doc/ProgrammerManual/Tutorial/index.html