掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
OpenRecordsetメソッドについて (ID:109606)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> dbOpenDynasetとdbOpenSnapshotの違いがよくわかりません。 他のRecordsetの違いに付いても、あわせて記載しておきます。(私自身への備忘録もかねて…) ≪dbOpenDynaset:ダイナセットタイプ≫ 1つ以上のテーブルに対するレコードへの参照を保持します。キーセットカーソルと呼ばれる事もあります。 最初にブックマーク情報のみが取得され、編集や表示が必要になった時点で、レコード全体が取得されます。 <利点> ・ローカルテーブルとリンクテーブルをJOINするなどの「異種結合」が可能です。 ・リモートデータに対して、更新可能なデータを取得したい場合などに適したタイプです。 <欠点> ・柔軟性が高いタイプですが、反面、クエリの実行とデータ操作に要する時間も長くなります。 ≪dbOpenSnapshot:スナップショットタイプ≫ 1つ以上のテーブルに対する、作成時点のデータのコピーを保持します。 静的カーソルと呼ばれる事もあります。 <利点> ・最初に全レコードのコピーを取得するため、レコード移動時のオーバーヘッドが軽減されます。 ・レコード移動時のデータの再取得が不要なため、ODBCの場合、クエリを実行してデータを返すまでの時間が短縮されます。 <欠点> ・結果セット内に多数のレコードが格納される場合には、処理性能が低下します。 ・Jetワークスペース内では更新できません。ODBCDirectの場合は、ODBCドライバによって更新できるものとできない物があります。 ≪dbOpenTable:テーブルタイプ≫ 単一のテーブルへの参照を示します。現レコードのデータのみを保持します。 <利点> ・インデックスが使用可能であり、検索時には、Findより高速なSeekメソッドを使うことができます。 ・取得後に、Sortプロパティを使って並び替えを行う事ができます。 ・ローカルテーブルに対する編集(AddNewなど)を行う場合には、このタイプが最速です。 <欠点> ・Jetワークスペース専用です。ODBCDirectでは使用できません。 ・JOIN操作されたSELECTクエリやユニオンクエリに対しては使用できません。 ≪dbOpenForwardOnly:前方スクロールタイプ≫ 現レコードのデータのみを保持します。前方方向への移動(MoveNext/MoveLast)のみが可能です。 <利点> ・データをEOFまで単純にMoveNextして表示させるような場面で、最大のパフォーマンスを発揮します。 <欠点> ・更新できません。 ≪dbOpenDynamic:動的タイプ≫ 1つ以上のテーブルに対するレコードへの参照を保持します。ダイナセットタイプとほぼ同様です。 (ODBCドライバによっては、動的カーソルがサポートされていない事があります) <利点> ・レコードの削除や追加などの変更が、基テーブルに即座に反映されます。 ・基になっているテーブルを他のユーザが修正するたびに動的に更新できます。 <欠点> ・ODBCDirect専用です。Jetワークスペースでは利用できません。 ・変更をすぐに反映させるため、(内部的な)DBへの再問合せが多く発生します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.