絶対 URL と相対 URL

URL は、ローカル コンピューターまたはネットワーク コンピューターに格納されているターゲットの場所を指定します。 ターゲットとしては、ファイル、ディレクトリ、HTML ページ、画像、プログラムなどがあります。

"絶対 URL" には、リソースの場所を特定するために必要なすべての情報が含まれます。

"相対 URL" では、絶対 URL を始点として使用してリソースの場所を特定します。 実際には、ターゲットの "完全な URL" は、絶対 URL と相対 URL を連結して指定されます。

"絶対 URL" では、形式 scheme://server/path/resource が使用されます。

通常、相対 URL は path のみで構成され、必要に応じて resource も含まれますが、scheme または server は含まれません。 次の表では、完全な URL 形式を構成する個々の部分を定義します。

scheme
resource へのアクセス方法を指定します。

server
resource が配置されているコンピューターの名前を指定します。

path
ターゲットに導くディレクトリのシーケンスを指定します。 resource を省略すると、ターゲットは、path 内の最後のディレクトリになります。

resource
含まれている場合、resource がターゲットであり、通常はファイルの名前です。 バイトの単一のバイナリ ストリームを含む "単純ファイル"、または 1 つ以上のストレージとバイトのバイナリ ストリームを含む "構造化ドキュメント" の場合もあります。

URL スキームの登録

プロバイダーで URL をサポートする場合、1 つ以上の URL スキームを登録します。 登録とは、そのスキームを使用するすべての URL で、登録されたプロバイダーが自動的に呼び出されることを意味します。 たとえば、http スキームは、Microsoft OLE DB Provider for Internet Publishing に登録されます。 ADO では、プレフィックス "http" が付いたすべての URL は、Internet Publishing Provider で使用される Web フォルダーまたはファイルを表していると見なします。 プロバイダーによって登録されたスキームについては、プロバイダーのドキュメントを参照してください。

URL によるコンテキストの定義

Connection オブジェクトで表される開かれた接続の機能の 1 つは、その接続で表されるデータ ソースへの後続の操作を制限することです。 つまり、接続によって、後続の操作のコンテキストが定義されます。

ADO 2.7 以降では、絶対 URL でコンテキストを定義することもできます。 たとえば、Record オブジェクトが絶対 URL で開かれると、URL で指定されたリソースを表す Connection オブジェクトが暗黙的に作成されます。

コンテキストを定義する絶対 URL は、Record オブジェクトの Open メソッドの ActiveConnection パラメーターで指定できます。 絶対 URL は、Connection オブジェクトの Open メソッドの ConnectionString パラメーター、およびRecordset オブジェクトの Open メソッドの ActiveConnection パラメーターで、"URL=" キーワードの値として指定することもできます。

コンテキストは、ディレクトリを表す Record または Recordset オブジェクトを開いて定義することもできます。これらのオブジェクトでは既に、コンテキストを指定する Connection オブジェクトが暗黙的または明示的に作成されているためです。

スコープ付き操作

コンテキストでは、スコープ、つまり以降の操作に参加できるディレクトリとそのサブディレクトリも定義できます。 Record オブジェクトには、ディレクトリとそのすべてのサブディレクトリに対して操作されるいくつかのスコープ付きメソッドがあります。 これらのメソッドには、CopyRecordMoveRecordDeleteRecord が含まれます。

コマンド テキストとしての相対 URL

データ ソースで実行されるコマンドを指定するには、Connection オブジェクトの Execute メソッドの CommandText パラメーター、およびRecordset オブジェクトの Open メソッドの Source パラメーターに文字列を入力します。

相対 URL は、CommandText または Source パラメーターで指定できます。 実際には、相対 URL は SQL コマンドなどのコマンドを表しません。単にパラメーターを指定するだけです。 アクティブな接続のコンテキストは絶対 URL である必要があり、Option パラメーターを adCmdTableDirectに設定する必要があります。

たとえば、次のコード サンプルは、Winnt/system32 ディレクトリの Readme25.txt ファイルで Recordset を開く方法を示しています。

recordset.Open "system32/Readme25.txt", "URL=https://YourServer/Winnt/",,,adCmdTableDirect  

接続文字列内の絶対 URL は、サーバー (YourServer) とパス (Winnt) を指定します。 この URL では、コンテキストも定義されています。

コマンド テキスト内の相対 URL では、絶対 URL を始点として使用し、パスの残り (system32) と、開くファイル (Readme25.txt) を指定しています。

options フィールド (adCmdTableDirect) は、コマンドの種類が相対 URL であることを示しています。

別の例として、次のコードでは、Winnt ディレクトリの内容で Recordset を開きます。

recordset.Open "", "URL=https://YourServer/Winnt/",,,adCmdTableDirect  

OLE DB プロバイダー提供の URL スキーム

完全修飾 URL の先頭部分は、URL の残りの部分で識別されるリソースにアクセスするために使用される "スキーム" です。 例としては、HTTP (ハイパーテキスト転送プロトコル) と FTP (ファイル転送プロトコル) があります。

ADO では、独自の URL スキームを認識する OLE DB プロバイダーがサポートされています。 たとえば、"発行済み" の Windows 2000 ファイルにアクセスする Microsoft OLE DB Provider for Internet Publishing は、既存の HTTP スキームを認識します。

参照

Connection オブジェクト (ADO)
Record オブジェクト (ADO)
Recordset オブジェクト (ADO)