レコードとストリーム

ADO では、現在、リレーショナル データベースなどのデータ ソースの情報にアクセスするための主要な手段として、Recordset オブジェクトが提供されています。 ただし、一部のプロバイダーは、プロバイダーからのデータを操作できる代替または補完的なオブジェクトとして、RecordStream オブジェクトをサポートしています。 Record の動作の詳細については、プロバイダーのドキュメントをご覧ください。

レコード

Record オブジェクトは、基本的に 1 行の Recordset として機能します。 ただし、Record の機能は Recordset と比較して制限されており、プロパティとメソッドは異なります。Record オブジェクト内のデータのソースには、プロバイダーから 1 行のデータを返すコマンドを使用できます。 Recordset オブジェクトではなく Record オブジェクトを使って、1 行のデータを返すクエリから結果を受け取ると、より複雑な Recordset オブジェクトをインスタンス化するオーバーヘッドがなくなります。

Record オブジェクトは、別の目的に使うこともできます。具体的には、Microsoft OLE DB Provider for Internet Publishing など、従来のリレーショナル データベース以外のデータ ソースのプロバイダーの場合です。 処理する必要がある情報の多くは、データベースのテーブルとしてではなく、メール システムのメッセージや最新のファイル システムのファイルとして存在します。 RecordStream オブジェクトは、リレーショナル データベース以外のソースに格納されている情報へのアクセスを容易にします。

Record オブジェクトは、ファイル システムのディレクトリとファイルや、メール システムのフォルダーとメッセージなどのデータを表して管理できます。 これらの目的の場合、Record のソースには、開いている Recordset の現在の行、絶対 URL、または相対 URL と開いている Connection オブジェクトの組み合わせを使用できます。

通常、Recordset を使って、フォルダーやディレクトリなどの階層内のコンテナーまたは親を表すことができます。 Record を使うと、ファイルやドキュメントなど、親コンテナー内の 1 つのノードに関する特定の情報を返すことができます。 Record がこの種の情報を表すために使われる主な理由は、これらのデータ ソースが異種であるということです。 これは、各 Record に含まれるフィールドのセットと数が異なる可能性があることを意味します。 データベースの行を含む従来の Recordset は同種であり、各行のフィールドの数と型が同じであることを意味します。

インターネット発行プロバイダーなどのプロバイダーからのこの異種データを処理するための Record オブジェクトの使用について詳しくは、「インターネットへの発行に ADO を使用する」をご覧ください。

ストリーム

Stream オブジェクトは、バイト ストリームの読み取り、書き込み、管理を行う手段を提供します。 このバイト ストリームはテキストまたはバイナリの場合があり、システム リソースによってのみサイズを制限されます。 通常、ADO の Stream オブジェクトは次の目的に使われます。

  • XML 形式で保存された Recordset のデータを格納するため。 保存された Recordset からのこれらの XML ストリームは、新しい Recordset を開くときのソースとして使用できます。 詳しくは、「ストリームと永続性」をご覧ください。

  • CommandText の代わりにプロバイダーに対して実行される CommandStream を格納するため。 たとえば、Microsoft OLE DB Provider for SQL Server に対するコマンドのソースとして XML UpdateGram を使用できます。

  • Microsoft OLE DB Provider for SQL Server からの XML の結果など、Recordset 以外の形式でプロバイダーから結果を受け取るため。 詳しくは、「ストリーム形式で結果セットを取得する」をご覧ください。

  • ファイルまたはメッセージを構成するテキストまたはバイトを格納するため。通常は、Microsoft OLE DB Provider for Internet Publishing などのプロバイダーで使われます。 Stream オブジェクトのこの使用方法について詳しくは、「インターネットへの発行に ADO を使用する」をご覧ください。

Stream オブジェクトは、次のもので開くことができます。

  • URL で指定された単純なファイル。

  • Stream オブジェクトを含む Record または Recordset のフィールド。

  • ディレクトリまたは複合ファイルを表す Record オブジェクトまたは Recordset オブジェクトの既定のストリーム。

  • 単純なファイルの URL を含むリソース フィールド。

  • 特定のソースが一切なし。 この場合、Stream オブジェクトはメモリ内で開かれます。 それにデータを書き込んだ後、別の Stream またはファイルに保存できます。

  • Recordset 内の BLOB フィールド。

このセクションでは、次のトピックを扱います。