Resync Command プロパティ - 動的 (ADO)
Unique Table 動的プロパティで指定されているテーブルのデータを更新するために Resync メソッドから発行されるユーザー指定のコマンド文字列を指定します。
設定と戻り値
コマンド文字列である String 値を設定するか、返します。
注釈
Recordset オブジェクトは、複数のベース テーブルで実行される JOIN 操作の結果です。 影響を受ける行は、Resync メソッドの AffectRecords パラメーターに依存します。 標準の Resync メソッドは、Unique Table プロパティや Resync Command プロパティが設定されていない場合に実行されます。
Resync Command プロパティのコマンド文字列は、更新される行を一意に識別するパラメーター化されたコマンドまたはストアド プロシージャであり、更新される行と同じ数と列の順序を含む 1 つの行を返します。 コマンド文字列には、一意のテーブル内の各主キー列のパラメーターが含まれます。含まれない場合、実行時エラーが返されます。 パラメーターには、更新される行の主キー値が自動的に入力されます。
SQL に基づく 2 つの例を次に示します。
1) 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 = ?"
一意のテーブルは Orders であり、その主キー OrderID はパラメーター化されます。 sub-select は、元のコマンドと同じ数と列の順序をプログラミングで返す簡単な方法です。
2) 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 (?)}"
繰り返しになりますが、一意のテーブルは Orders であり、その主キー OrderID はパラメーター化されます。
Resync Command は、CursorLocation プロパティが adUseClient に設定されている場合に、Recordset オブジェクトの Properties コレクションに追加される動的プロパティです。