|
Btrieve ログイン API や、Create または Open オペレーションによる暗黙のログイン機能を使用する上での主要な概念は、データベース URI(Uniform Resource Indicator)です。これは、サーバー上のデータベース リソースのアドレスを記述する構文を提供します。
このセクションでは、Btrieve API で使用する URI の構文と意味を説明します。
URI は次の構文を使用します。
access_method://user@host/dbname?parameters
要素
|
定義
|
---|---|
access_method
|
データベースのアクセスに使用する方法。この要素は必須です。現在、btrv のみがサポートされています。
|
user@
|
ユーザー名(省略可能)。必要な場合は、parameters にユーザーのパスワードを指定します。"@" 文字は、host が指定されない場合でもユーザー名を区切るために使用する必要があります。
|
host
|
データベースが保存されているサーバー。host が指定されていない場合は、ローカル マシンと見なされます。host には、マシン名、IP アドレス、あるいは "localhost" キーワードを指定できます。
メモ:Linux オペレーティング システムのデータベースにアクセスする URI の場合、host は必須要素です。
|
dbname
|
データベース名(省略可能)。Pervasive PSQL データベース エンジンの DBNAMES.CFG ファイル内のエントリに対応します。データベース名が指定されていない場合は、デフォルトのデータベース "DefaultDB" と見なされます。
|
parameters
|
追加オプション パラメーター。&(アンパサンド)文字で区切ります。
|
パラメーターの "file"、"table" および "dbfile" のうち、2 つ以上のパラメーターが URI に指定された場合、データベース エンジンはそれらのパラメーターに対し優先順位を設定します。つまり、データベース エンジンは URI の解析後、優先順位が最も高いパラメーターを残します。同じ優先度を持つパラメーターが 2 つ以上指定された場合は、解析後には URI で最後に指定されているパラメーターが残ります。
優先順位は "file"、"table"、"dbfile" の順で設定されています。
ほかの URI と同様に、ある特定の英数字以外の文字は URI 構文で特殊な意味を持ちます。そのような文字の 1 つを URI のいずれかの要素で使用する場合は、その文字が実際のテキストではなく特殊文字であると識別されるよう、エスケープ シーケンスを使用する必要があります。エスケープ シーケンスは、特殊文字に相当する標準テキストを表す、別の特殊文字または文字の組み合わせです。
下記の表は、トランザクショナル インターフェイス URI の構文でサポートされている特殊文字と、それに関連付けられたエスケープ シーケンス(パーセント記号と、指定された文字の 16 進値で表されます)を示しています。
文字
|
説明
|
16 進値
|
---|---|---|
/
|
ディレクトリとサブディレクトリを区切ります。
|
%2F
|
?
|
ベース URI と関連パラメーターを分離します。
|
%3F
|
%
|
特殊文字を指定します。
|
%25
|
#
|
ブックマークまたはアンカーを示します。
|
%23
|
&
|
URI 内のパラメーターを区切ります。
|
%26
|
" "
|
二重引用符で囲まれている内容全体を示します。
|
%22
|
=
|
パラメーターとその値を区切ります。
|
%3D
|
空白
|
特別な意味はありませんが、予約されています。
|
%20
|
:
|
ホストとポートを分離します(予約されていますが、現在はサポートされていません)。コロンは IPv6 アドレスでも一部使用されます。IPv6 を参照してください。
|
%3A
|
空白文字は URI 仕様で予約されていますが、これは区切り文字として使用されないため、引用符もエスケープ シーケンスもなしで使用できます。それ以外の上記の表内の記号は区切り文字として使用されるため、エスケープする必要があります。
このセクションでは、フィールド値の中で使用されている特殊文字を識別するためにエスケープ シーケンスを使用している URI の例を示します。
空のユーザー名または空のパスワードは、ユーザー名やパスワードがないこととは異なるので注意してください。たとえば、btrv://@host/
には空のユーザー名が入っていますが、btrv://host/
にはユーザー名がありません。btrv://foo@host/?pwd=
には、"foo" というユーザー名が入っており、パスワードは空です。
URI によっては user:password 構文を使用することもできます。ただし、ここで指定されるパスワードはその後クリア テキストとして転送されます。パスワードがクリア テキストとして転送されないようにするため、user:password 構文を使用してパスワードが提供された場合、Pervasive PSQL データベース URI はそのパスワードを無視します。pwd= パラメーターを使用してパスワードを提供してください。このパスワードは Pervasive PSQL クライアントによって転送される前に暗号化パスワードへ変更されます。
いくつかの URI では user@host:port 構文を使用するサーバー ベースの命名機関を可能にすることもできます。Pervasive PSQL データベース URI は port 要素の指定をサポートします。
URL(Uniform Resource Locator)は単に、インターネット上のファイルまたはリソースのアドレスです。データベース URI は同じ概念を利用してサーバー上のデータベースのアドレスを指定します。このセクションでは、Pervasive PSQL データベースにおける、特にトランザクショナル インターフェイス アクセスを使用する場合の URI の構文と意味の例を挙げます。
URI および UNC 構文では、コロンなど一部の特殊文字を使用できません。未加工の IPv6 アドレスではコロンを使用するので、UNC パスや URI 接続の処理には異なる方法を使用できます。Pervasive PSQL は IPv6-literal.net 名および、角かっこ([])で囲まれた IPv6 アドレスをサポートします。
『Getting Started with Pervasive PSQL』の 「IPv6」 を参照してください。
|