Linuxでodbc.iniおよびodbcinst.iniファイルの適切なドキュメントを探している


11

部分的な情報、古い情報は見ましたが、実際のサンプルファイルほど良いものはありませんでした。

との正確な関係を理解する必要がodbc.iniありodbcinst.iniます。表面的にはかなり明白です- odbc.iniファイルの先頭に次のようなセクションがあります:

[ODBC Data Sources]
MYDSN = MyDriverName
...

ただし、たとえば、ドライバーまたはDSNセクションのいずれかで設定できるかどうかはわかりません。

1)Driver = /path/to/file/.so両方のファイルに行があり、値が異なる場合があります。これは理にかなっていますか?ある場合、どちらが優先されますか?

2)odbcinst.iniJavaScriptのような「プロトタイプ」odbc.iniですか?言い換えれば、私は一般的な設定でのDSNの数を作成していた場合、私はから、共通の設定を促進することができるodbc.iniodbcinst.ini

3)DriverSetupin の違いは何odbcinst.iniですか?それらは同じ値を持っているようです。これらの設定はデータベース固有ですか、それともユニバーサルですか?



上記のリンクが答えに役立つと思います。考えてみてください。ORACLEデータソース用にodbc.iniファイルを構成する場合、システムはORACLEがどのように認識されるか、これがodbcinst.iniが定義するものです。これは、「システム全体」ではなく、特定のパス/ソフトウェアのセットに対してローカルにすることができます。
シュルート14

回答:


9

を使用FreeTDSDebianて、php-driven 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

Driverセクションの構成を保持しますodbc.ini

[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);
  }

などなど。

設定および使用できる変数は他にもたくさんあると思いますが、これはあなたが尋ねたファイルについて説明できる最も簡単な説明です。


4

Unixの実装だけを見ると、ODBCの仕組みについて興味深いアイデアが得られます。これらの実装はいずれも、ODBC仕様の管理者であるMicrosoftによって作成されたWindowsの参照実装と100%匹敵するものではありません。

Unixには一般的に2つのODBCドライバーマネージャーがあります。 この質問に関連するドキュメントがここにあるiODBCは、私の雇用者によって維持およびサポートされています。 UnixODBCは他のものであり、他の回答で議論されました。これらは、プラットフォームに依存しない標準の実装であるため、相互および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.iniJavaScriptのような「プロトタイプ」odbc.iniですか?言い換えれば、私は一般的な設定でのDSNの数を作成していた場合、私はから、共通の設定を促進することができるodbc.iniodbcinst.ini

いいえ、odbcinst.iniこのように「プロトタイプ」ではありません。odbcinst.ini設定はドライバに関連しますが、そのドライバに基づくDSNには関連しません。

3)DriverSetupin の違いは何odbcinst.iniですか?それらは同じ値を持っているようです。これらの設定はデータベース固有ですか、それともユニバーサルですか?

ドライバライブラリ、および参照設定ライブラリに。後者は完全にオプションであり、存在する場合、データ接続中に使用する必要はありますが、使用する必要はありません。これは主に、DSNとして保存するために、そのような接続を「セットアップ」するときにODBC管理者が使用することを目的としています。これらのライブラリは同じ物理ファイル内にある場合もありますが、必ずしもそうである必要はなく、たとえば、通常はOS X環境にはありません。odbcinst.iniDriver =Setup =


1

googleで最初にヒットしたunixodbcサイトのodbcinst.iniとodbc.iniの簡単な違い:

システムファイルodbcinst.iniには、すべてのユーザーが利用可能なODBCドライバーに関する情報が含まれています。odbc.iniファイルには、すべてのユーザーが利用可能なDSNに関する情報が含まれています。これらの「システムDSN」は、実際のユーザーとして実行されていない可能性があるため、.odbc.iniファイルを格納するホームディレクトリを持たないWebサーバーなどのアプリケーションに役立ちます。


ありがとう。構文から多くのことを推測したことを忘れていました-実際、すべてのDSNはodbc.iniの最上部のドライバーを{DSN} = {Driver}構文で指定する必要がありますが、それでも混乱しています。
レオニード

0

マニュアルがあることを想定している、ここで(クリックしManualsた後User Manual)。 しかし、残念ながらのリンクAdministrator ManualProgrammer 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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.