コマンドの動的プロパティの再同期 (ADO)
適用先: Access 2013、Office 2013
Unique Table 動的プロパティに指定されているテーブルのデータを更新するために Resync メソッドが発行する、ユーザー指定のコマンド文字列を指定します。
設定と戻り値
コマンド文字列である文字列型 (String) の値を設定または取得します。
注釈
Recordset オブジェクトは、複数のベース テーブルに対して実行される JOIN 操作の結果です。 影響を受ける行は、Resync メソッドの AffectRecords パラメーターによって異なります。 Unique Table プロパティと Resync Command プロパティが設定されていない場合は、標準の Resync メソッドが実行されます。
Resync Command プロパティのコマンド文字列は、更新する行を一意に識別するパラメーター化されたコマンドまたはストアド プロシージャであり、更新する行と同じ数と列の順序を含む 1 つの行を返します。 コマンド文字列には、 一意のテーブル内の各主キー列のパラメーターが含まれています。それ以外の場合は、実行時エラーが返されます。 パラメーターには、更新する行の主キー値が自動的に入力されます。
次に SQL の例を 2 つ示します。
Recordset がコマンドによって定義されている場合
SELECT * FROM Customers JOIN Orders ON Customers.CustomerID = Orders.CustomerID WHERE city = Seattle ORDER BY CustomerID
Resync Command プロパティは次のように設定されます。
SELECT * FROM (SELECT * FROM Customers JOIN Orders ON Customers.CustomerID = Orders.CustomerID city = Seattle ORDER BY CustomerID) WHERE Orders.OrderID = ?"
Unique Table は Orders であり、その主キー OrderID はパラメーター化されています。 SELECT 文中の SELECT 文では、元のコマンドが返すのと同じ数および順序の列をプログラムで簡易に実現しています。
Recordset がストアド プロシージャによって定義されている場合
CREATE PROC Custorders @CustomerID char(5) AS SELECT * FROM Customers JOIN Orders ON Customers.CustomerID = Orders.CustomerID WHERE Customers.CustomerID = @CustomerID
Resync メソッドで次のストアド プロシージャを実行します。
CREATE PROC CustordersResync @ordid int AS SELECT * FROM Customers JOIN Orders ON Customers.CustomerID = Orders.CustomerID WHERE Orders.ordid = @ordid
Resync Command プロパティは次のように設定されます。
"{call CustordersResync (?)}"
ここでも、Unique Table は Orders であり、その主キー OrderID はパラメーター化されています。
Resync Command は、CursorLocation プロパティを adUseClient に設定するときに、Recordset オブジェクトの Properties コレクションに追加される動的プロパティです。