rs.open sql、conn、a、b
A:
adopenforwardonly(= 0)
読み取り専用で、現在のデータレコードは下向きに移動することができます。
adopenkeyset(= 1)
読み取り専用、現在のデータレコードは自由に移動できます。
adopendynamic(= 2)
読みやすく、書き込み可能で、現在のデータレコードは自由に移動できます。
採用(= 3)
読み取り、書き込み、現在のデータレコードは自由に移動でき、新しいレコードを見ることができます。
B:
adlockreadonly(= 1)
デフォルトのロックタイプは読み取り専用であり、レコードを変更できません。
adlockpessimistic(= 2)
悲観的なロックは、レコードが変更されると、レコードをロックして編集が成功し、編集が開始される限りすぐにレコードをロックしようとします。
adlockoptimic(= 3)
楽観的なロックでは、更新されたレコードが更新方法を使用して送信されるまで、レコードはロックされていません。
adlockbatchoptimistic(= 4)
Batchの楽観的ロックにより、複数のレコードを変更でき、更新バッチメソッドが呼び出された場合にのみレコードがロックされます。
レコードの変更が不要な場合は、プロバイダーが検出を行う必要がないように、読み取り専用のレコードセットを使用する必要があります。一般的な使用のために、レコードは短期間しかロックされておらず、この期間中にデータが更新されるため、楽観的なロックが最良の選択肢である場合があります。これにより、リソースの利用が削減されます。
プロバイダーからのデータは、レコードセットオブジェクトを使用して操作できます。 ADOを使用する場合、ほとんどすべてのデータをRecordSetオブジェクトを介して動作させることができます。すべてのレコードセットオブジェクトは、レコード(行)とフィールド(列)を使用して構築されます。プロバイダーがサポートするさまざまな機能により、一部の記録セットメソッドまたはプロパティが無効になる場合があります。
ADOでは、4つの異なるカーソルタイプが定義されています。
ダイナミックカーソル?他のユーザーが作成した追加、変更、削除を表示し、ブックマークに依存しないレコードセットでさまざまなタイプの動きを使用するために使用されます。プロバイダーによってサポートされている場合、ブックマークを使用できます。
キーセットカーソル?その動作は、動的なカーソルに似ています。唯一の違いは、他のユーザーが追加したレコードの表示を禁止し、他のユーザーが削除するレコードへのアクセスを禁止することです。他のユーザーが行ったデータの変更は引き続き表示されます。常にブックマークをサポートしているため、レコードセットでさまざまなタイプの動きが可能になります。
静的カーソル?レコードコレクションの静的コピーを提供して、データを見つけたり、レポートを生成したりします。常にブックマークをサポートしているため、レコードセットでさまざまなタイプの動きが可能になります。他のユーザーによる追加、変更、または削除は表示されません。これは、クライアント(Ador)レコードセットオブジェクトを開くときに許可される唯一のカーソルタイプです。
フォワードカーソルのみ?動作は、レコード内のフォワードスクロールのみを許可することを除いて、静的カーソルのようなものです。これにより、レコードセット内の一方向の動きが必要なときにパフォーマンスが向上します。
Cursortypeプロパティを設定して、レコードセットを開く前にカーソルタイプを選択するか、Openメソッドを使用してCursortypeパラメーターを渡します。一部のプロバイダーは、すべてのカーソルタイプをサポートしていません。プロバイダーのドキュメントを確認してください。カーソルタイプが指定されていない場合、ADOはデフォルトでのみフォワードカーソルをオンにします。
Cursorlocationプロパティがaduseclientに設定され、レコードセットがオンになっている場合、Fieldオブジェクトの基礎となるValueプロパティは、返されたRecordSetオブジェクトでは使用できません。 OLE DBのMicrosoft ODBCプロバイダーなどの一部のプロバイダーとMicrosoft SQL Serverとともに、開いた方法を使用して接続文字列を渡すことにより、以前に定義された接続オブジェクトに基づいてRecordSetオブジェクトを個別に作成できます。 ADOは引き続き接続オブジェクトを作成しますが、オブジェクトをオブジェクト変数に割り当てません。ただし、同じ接続で複数のレコードセットオブジェクトが開かれている場合、接続オブジェクトを作成して明示的に開く必要があり、それにより、接続オブジェクトをオブジェクト変数に割り当てます。レコードセットオブジェクトが開かれたときにオブジェクト変数が使用されない場合、ADOは、同じ接続文字列が渡された場合でも、新しいレコードセットごとに新しい接続オブジェクトを作成します。