dsnadd
説明
dsnadd を使用すると、PSQL データベースに接続する新しい ODBC データ ソースの設定が簡単に行えます。新しいデータ ソースに対し適切なプロパティを提供することで odbc.ini ファイルを変更します。
PSQL は /usr/local/psql/etc にある odbcinst.ini ファイルを使用することで UNIXODBC に従い、32 ビットおよび 64 ビット ODBC ドライバーを指定します。ドライバー記述 "Pervasive ODBC Interface" を参照する DSN は、odbc.ini ファイル内の odbcinst.ini 情報を指し示します。1 つの DSN を 32 ビット アプリケーションと 64 ビット アプリケーションの両方で使用することができます。注記も参照してください。
dsnadd は 任意で、レガシー スタイルの DSN を作成できるオプションを提供します。これは odbcinst.ini を指すのではなく、odbc.ini に 32 ビット ドライバー名を指定します。ただし、そのようなスタイルの DSN は 64 ビット アプリケーションにはアクセスできません。
概要
dsnadd -dsn=myDSN -db=DBname
これは、サーバー上の 32 ビット アプリケーションと 64 ビット アプリケーションの両方で使用できる DSN を "Pervasive ODBC Interface" ドライバー記述を用いて作成します。この DSN は、Windows クライアントで実行している ODBC アドミニストレーターでエンジン DSN としては表示されません
dsnadd -dsn=myDSN -db=DBname -host=psqlhost
これは、クライアント上の 32 ビット アプリケーションと 64 ビット アプリケーションの両方で使用できる DSN を "Pervasive ODBC Interface" ドライバー記述を用いて作成します。
dsnadd -dsn=myDSN -sdsn=engineDSN -host=psqlhost -clntdsn
DSN がアクセスできるのは 32 ビット アプリケーションのみであることに注意してください。
dsnadd -dsn=myDSN -db=DBname -engdsn
DSN がアクセスできるのは 32 ビット アプリケーションのみであることに注意してください。
dsnadd -l
上記の要素は次のような意味があります。
myDSN は、新しいデータ ソースに割り当てたい名前です。
DBname は PSQL ホスト上の名前付きデータベースの名前です。
psqlhost は PSQL Server がインストールされているホストの名前です。
engineDSN は PSQL ホスト上のエンジン DSN の名前です。
オプション
 
ODBC Guide』の自動を参照してください。
新規アプリケーションまたは修正を施す 32 ビット アプリケーションの場合は、クライアント DSN を使用するよりも、-db= を使用した名前付きデータベースに接続する DSN を作成するようにしてください。
新規アプリケーションまたは修正を施す 32 ビット アプリケーションの場合は、エンジン DSN を使用するよりも、-db= を使用した名前付きデータベースに接続する DSN を作成するようにしてください。
次の例では、ローカル データベース region1accting に接続するサーバー側 DSN の acctingdb を作成します。
dsnadd -dsn=acctingdb -db=region1accting
次の例では、リモートサーバー USInventory 上のデータベース DomesticOrders に接続するクライアント側 DSN の USInvoices を作成します。
dsnadd -dsn=USInvoices -db=DomesticOrders -host=USInventory
次の例では、使用が推奨されないレガシー スタイルのクライアント DSN bkorderclnt を作成します。この DSN は JapanSvr2 というマシン上のエンジン DSN の backordersrv を参照し、自動エンコードを使用します。
dsnadd -dsn=bkorderclnt -sdsn=backordersrv -host=JapanSvr2 -translate=auto -clntdsn
次の例では、データベース partscatalog に接続する、使用が推奨されないレガシー スタイルのエンジン DSN の partsctlg を作成します。
dsnadd -dsn=partsctlg -db=partscatalog -engdsn
注記
Linux または OS X ディストリビューションの場合、個々の ODBC ドライバーはドライバー マネージャー UNIXODBC を介してロードされます。このドライバー マネージャーはデータ ソース名(DSN)から特定の PSQL ODBC ドライバーへのマッピングを保持します。
PSQL Server 64 ビットまたは Client 64 ビットがインストールされても、既に存在するユーザー定義の 32 ビット DSN に変更はありません。これは、これらの DSN は 64 ビット アプリケーションからは直接アクセスできないということです。新しい DSN については、上記の両製品のインストールで 32 ビットおよび 64 ビット ODBC ドライバーが odbcinst.ini に割り当てられます。この割り当てによって、1 つの DSN を 32 ビット アプリケーションと 64 ビット アプリケーションの両方で使用することができます。
既存の 32 ビット DSN を 32 ビット アプリケーションと 64 ビット アプリケーションの両方にアクセスさせたい場合は、それらの DSN を名前付きデータベースに接続する DSN として再作成する必要があります。
ODBC およびデータ ソース名(DSN)
アプリケーションのビット数が PSQL Server 製品のビット数と一致している必要はありません。たとえば、64 ビット ODBC ドライバーや 32 ビット ODBC ドライバーは、PSQL Server 64 ビットまたは PSQL Server 32 ビットのどちらの接続にも使用することができます。
ただし、PSQL Client の場合は、アプリケーションのビット数がクライアント マシン上の PSQL Client のビット数と一致している必要があります。つまり、クライアント上で 64 ビット アプリケーションを使用するには、PSQL 64 ビット Client がインストールされている必要があります。
次の表で説明するように、PSQL では DSN は3 つの異なる ODBC ドライバー記述を指定することができます。
よく寄せられる質問
次の表では、Linux および OS X における ODBC および DSN のサポートについてよく寄せられる質問(FAQ)の回答を記載しています。
はい、作成できます。しかし、dsnadd では -engdsn または -clntdsn オプションを指定する必要があります。いずれかのオプションで作成された DSN は 32 ビット アプリケーションのみに対応します。
DSN を管理する DTI を使用する代わりに、SQL や ODBC ステートメントを使用することができます。たとえば、CREATE DATABASE を使用して名前付きデータベースを作成し、SQLConfigDatasource を使用して DSN を設定することができます。
ODBC ヘッダー ファイル
ODBC 用の sql.h、sqltypes.h および sqlext.h ヘッダー ファイルには、32 ビット アプリケーションと 64 ビット アプリケーションのコンパイルに違いがあります。64 ビット ODBC の説明については、UNIXODBC Web サイトで ODBC に関するドキュメントを参照してください。たとえば、次の Web サイト(英語サイト)の情報が役立ちます。
http://www.unixodbc.org/doc/ODBC64.html
関連項目
btadmindbmaintisql