コマンド ライン インターフェイス ユーティリティ : dsnadd
 
このページをシェアする                  
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 ビット アプリケーションにはアクセスできません。
概要
名前付きデータベースへ接続するサーバー上に DSN を作成するには
dsnadd -dsn=myDSN -db=DBname
これは、サーバー上の 32 ビット アプリケーションと 64 ビット アプリケーションの両方で使用できる DSN を "Pervasive ODBC Interface" ドライバー記述を用いて作成します。この DSN は、Windows クライアントで実行している ODBC アドミニストレーターでエンジン DSN としては表示されません
サーバー上の名前付きデータベースへ接続するクライアントで DSN を追加するには
dsnadd -dsn=myDSN -db=DBname -host=psqlhost
これは、クライアント上の 32 ビット アプリケーションと 64 ビット アプリケーションの両方で使用できる DSN を "Pervasive ODBC Interface" ドライバー記述を用いて作成します。
使用が推奨されないレガシー スタイルのクライアント DSN を "Pervasive ODBC Client Interface" ドライバー記述を用いて追加するには、次のコマンドを実行します。
dsnadd -dsn=myDSN -sdsn=engineDSN -host=psqlhost -clntdsn
DSN がアクセスできるのは 32 ビット アプリケーションのみであることに注意してください。
使用が推奨されないレガシー スタイルのエンジン DSN を "Pervasive ODBC Engine Interface" ドライバー記述を用いてサーバー上に追加するには、次のコマンドを実行します。
dsnadd -dsn=myDSN -db=DBname -engdsn
DSN がアクセスできるのは 32 ビット アプリケーションのみであることに注意してください。
既存の DSN を一覧表示するには次のように入力します。
dsnadd -l
上記の要素は次のような意味があります。
myDSN は、新しいデータ ソースに割り当てたい名前です。
DBname は PSQL ホスト上の名前付きデータベースの名前です。
psqlhost は PSQL Server がインストールされているホストの名前です。
engineDSN は PSQL ホスト上のエンジン DSN の名前です。
オプション
 
最も一般的に使用されるオプションは以下のとおりです。
-db=
DSN が関連付けられているデータベース(ローカルまたはリモート)の名前
-dsn-name= | -dsn=
データ ソース名
-help
dsnadd ユーティリティの構文およびオプションを表示します。
-l
既存の DSN を一覧表示します。
openmode=<0|1|-1|-4> | -omode=<-0|1|-1|-4>
現在の接続で開くファイルのデフォルトのオープン モードを指定します。デフォルトは 0(ノーマル)です。ローカル接続のみで使用でき、リモート クライアント接続では使用できません。ファイルのオープン モードの詳細については、『ODBC Guide』の DSN オープン モードを参照してください。
-srv-host= | -host=
サーバーのホスト名
-srv-port= | -port=
サーバーのポート番号。デフォルト値は 1583 です(『Getting Started with PSQL』のデフォルトの通信ポートの変更を参照してください)。
-translate=< none | auto >
文字データに使用するエンコード変換。デフォルト値は "none" です。クライアントとサーバー間で転送される文字データがないことを意味します。これはクライアントとサーバーが同じオペレーティング システムのエンコードを使用していることを前提としています。
ODBC Guide』の自動を参照してください。
以下のオプションは、使用が推奨されないレガシー スタイルの DSN の作成に使用されます。
-clntdsn
使用が推奨されないレガシー スタイルのクライアント DSN を "Pervasive ODBC Client Interface" ドライバー記述を用いて作成します。
新規アプリケーションまたは修正を施す 32 ビット アプリケーションの場合は、クライアント DSN を使用するよりも、-db= を使用した名前付きデータベースに接続する DSN を作成するようにしてください。
-engdsn
使用が推奨されないレガシー スタイルのエンジン DSN を "Pervasive ODBC Engine Interface" ドライバー記述を用いて作成します。
新規アプリケーションまたは修正を施す 32 ビット アプリケーションの場合は、エンジン DSN を使用するよりも、-db= を使用した名前付きデータベースに接続する DSN を作成するようにしてください。
-sdsn=
使用が推奨されないレガシー スタイルのクライアント DSN 用に使用します。PSQL Server のエンジン DSN の名前です。
アプリケーション開発およびテストのみで一般的に使用されるオプションは以下のとおりです。
-dsn-desc= | -desc=
dsnadd は DNS のデフォルトの説明を odbc.ini に提供します。デフォルトの説明を無効にして上書きする場合は、このオプションを使用して説明文字列を指定します。説明文字列に空白文字を含める場合は、その説明文字列全体を二重引用符で囲む必要があります。
-drv-desc=
dsnadd は -db、-clntdsn および -engdsn オプションの有無に基づいてドライバー記述を処理します。指定する場合は、次のいずれかを指定する必要があります。
Pervasive ODBC Interface
Pervasive ODBC Client Interface
Pervasive ODBC Engine Interface
-drv-path= | -drv=
ドライバー ライブラリが置かれるパス。デフォルトのパスは /usr/local/psql/lib:$HOME/lib です。
-odbc-ini= | -ini=
ODBC.ini ファイルの名前(たとえば、/usr/local/psql/etc/odbc.ini)
次の例では、ローカル データベース 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 ドライバー記述を指定することができます。
表 17 Linux、OS X および Raspbian 用の PSQL ODBC ドライバー記述
INI ファイルにおける ODBC ドライバー記述
一緒にインストールされるドライバー ライブラリ
一緒にインストールされる製品の動作
Pervasive ODBC Engine Interface
PSQL Server(64 ビット)
PSQL Server 32 ビット(Linux のみ)
既存のエンジン DSN との互換性を維持するため ODBC ドライバーを odbc.ini に割り当てます。
ローカルの名前付きデータベースへ接続します。
dsnadd を使用する場合、デフォルトでは作成されなくなりました(-engdsn オプションを使用する必要があります)。
Windows クライアント上で実行している ODBC アドミニストレーターでエンジン DSN を表示すると見ることができます。
エンジン DSN を使用するため既にコード化された 32 ビット アプリケーションに使用されます。
Linux の場合、32 ビット エンジン DSN の使用は推奨しません。
Pervasive ODBC Client Interface
PSQL Server(64 ビット)
PSQL Server 32 ビット(Linux のみ)
PSQL Client 32 ビット(Linux のみ)
既存のクライアント DSN との互換性を維持するため ODBC ドライバーを odbc.ini に割り当てます。
ローカルまたはリモートの名前付きデータベース、あるいはエンジン DSN へ接続します。
クライアント DSN を使用するため既にコード化された 32 ビット アプリケーションのみに使用。
dsnadd で –host を指定する場合、デフォルトでは作成されなくなりました(-clntdsn オプションを使用する必要があります)。
Linux の場合、32 ビット クライアント DSN の使用は推奨しません。
Pervasive ODBC Interface
PSQL Server(64 ビット)
PSQL Client(64 ビット)
新しい 32 ビットおよび 64 ビット DSN で使用するため ODBC ドライバーを odbcinst.ini に割り当てます。
ローカルまたはリモートの名前付きデータベースへ接続します。
32 ビットおよび 64 ビット アプリケーション用に推奨されるドライバー記述です。
dsnadd を使用する場合、デフォルトで作成されます。
Windows クライアント上で実行している ODBC アドミニストレーターで、エンジン DSN としては表示されません。
よく寄せられる質問
次の表では、Linux および OS X における ODBC および DSN のサポートについてよく寄せられる質問(FAQ)の回答を記載しています。
表 18 Linux および OS X 向けの ODBC および DSN サポートに関する FAQ 
質問
回答
32 ビット アプリケーションを 64 ビットに移植する場合、DSN について何か行う必要がありますか?
アプリケーションが DSN レス接続(接続文字列 "Pervasive ODBC Client Interface" を使用した接続)を利用している場合、その ODBC ドライバー記述を Pervasive ODBC Interface に変更します。
アプリケーションが DSN を使用する場合は、名前付きデータベースに接続する新しい DSN を作成する必要があります。
DSN レス接続とはなんですか?
DSN レス接続とは、ODBC ドライバー "Pervasive ODBC Client Interface"(既存の 32 ビット アプリケーション用)または "Pervasive ODBC Interface"(32 ビットまたは 64 ビット アプリケーション用)を使用して名前付きデータベースへ接続するものを指します。
使用が推奨されないレガシー スタイルのエンジン DSN やクライアント DSN はまだ作成することができますか?
はい、作成できます。しかし、dsnadd では -engdsn または -clntdsn オプションを指定する必要があります。いずれかのオプションで作成された DSN は 32 ビット アプリケーションのみに対応します。
Windows クライアントで ODBC アドミニストレーターを使用していますが、作成した DSN が見えないのはなぜでしょう?
64 ビット Windows オペレーティング システムの場合、レジストリ設計により 64 ビット システム DSN と 32 ビット システム DSN は区別されています。64 ビット ODBC アドミニストレーターを使用している場合は、32 ビット システム DSN は見えません。逆もまた同様です。
作成したアプリケーションが DTI を使用して DSN を管理する場合はどうなりますか?
DSN 用の DTI 関数で管理するのは 32 ビット エンジン DSN のみです。そのため、将来的には DSN 用の DTI 関数は 32 ビット エンジン インターフェイス ODBC ドライバーと共に使用できなくなる可能性があります。
DSN を管理する DTI を使用する代わりに、SQL や ODBC ステートメントを使用することができます。たとえば、CREATE DATABASE を使用して名前付きデータベースを作成し、SQLConfigDatasource を使用して DSN を設定することができます。
将来的に、ODBC 接続で推奨される方策はありますか?
はい。新規アプリケーションまたは修正を施す 32 ビット アプリケーションは、ローカルでもリモートでも、名前付きデータベースへ接続するようにしてください。
ODBC ヘッダー ファイル
ODBC 用の sql.h、sqltypes.h および sqlext.h ヘッダー ファイルには、32 ビット アプリケーションと 64 ビット アプリケーションのコンパイルに違いがあります。64 ビット ODBC の説明については、UNIXODBC Web サイトで ODBC に関するドキュメントを参照してください。たとえば、次の Web サイト(英語サイト)の情報が役立ちます。
http://www.unixodbc.org/doc/ODBC64.html
関連項目
btadmindbmaintisql