OLE DB カーソル (SQL Server Compact)
MicrosoftSQL Server Compact 3.5 は、ベース テーブル、前方参照のみ、スクロール可能の 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 |