OLE DB カーソル (SQL Server Compact)

Microsoft SQL Server Compact 4.0 は、ベース テーブル、前方参照のみ、スクロール可能の 3 つのカーソル タイプをサポートしています。サポートされているこれらのカーソルが使用された場合、クライアントは一度に 1 行しか開くことができません。

ベース テーブル カーソル

ベース テーブル カーソルは、サポートされるカーソルのうち最も高速のカーソルであり、ストレージ エンジンと直接対話する唯一のカーソルです。このカーソルでは、更新、ブックマーク、インデックス、および IRowsetIndex の Seek メソッドと SetRange メソッドがサポートされます。ベース テーブル カーソルでは、クライアントから DBPROP_IRowsetUpdate が TRUE として渡された場合に IRowsetUpdate インターフェイスを公開することで、必要に応じて遅延更新モードがサポートされます。このカーソルは動的なメンバーシップを持ちます。DBPROP_OTHERINSERT プロパティと DBPROP_OTHERUPDATEDELETE プロパティはどちらも TRUE です。

ベース テーブル カーソルを開くには、IOpenRowset::OpenRowset を使用する必要があります。"SELECT * FROM table" を使用すると、ベース テーブル カーソルではなく、クエリ プロセッサ カーソル (前方参照のみまたはスクロール可能) が生成されます。ベース テーブル カーソルのみが更新をサポートしています。

前方参照のみカーソル

前方参照のみカーソルは読み取り専用のカーソルで、クエリ プロセッサ カーソルの中では最も処理が高速です。すべてのカーソルの中でも 2 番目に処理が速いカーソルです。ただし、提供する機能は最も限定されています。ブックマークと更新はサポートされません。

スクロール可能カーソル

読み取り専用のスクロール可能カーソルは、クエリ プロセッサ カーソルの中では最も多機能です。このカーソルの結果セットはキャッシュされます。これにより、カーソルの再起動は高速になりますが、特に大量の結果セットを伴うクエリでは、リソースの負担が大きくなります。結果はキャッシュされるため、クエリの基になるベース テーブルへの変更は、クエリを再実行しない限り、クエリの結果に反映されません。

必要なプロパティ設定

次の表は、必要なプロパティの値をカーソル タイプごとに整理したものです。

プロパティの設定値

ベース テーブル

前方参照のみ

スクロール可能

DBPROP_BOOKMARKS

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE

DBPROP_OWNUPDATEDDELETE

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OWNINSERT

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OTHERUPDATEDELETE

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OTHERINSERT

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_CANFETCHBACKWARDS

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE

DBPROP_QUICKRESTART

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE