次の方法で共有


Resync Command Property-Dynamic (ADO)

Resync メソッドが発行するユーザー指定のコマンド文字列を指定して、Unique Table 動的プロパティで指定されたテーブル内のデータを更新します。

設定と戻り値

コマンド文字列である 文字列 値を設定または返します。

備考

Recordset オブジェクトは、複数のベース テーブルで実行された JOIN 操作の結果です。 影響を受ける行は、Resync メソッドの AffectRecords パラメーターによって異なります。 標準の Resync メソッドは、Unique Table プロパティと Resync コマンド プロパティ 設定されていない場合に実行されます。

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 パラメーター化されます。 サブ選択では、プログラムを使用して、元のコマンドと同じ数と順序の列が返されるようにする簡単な方法が提供されます。

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 パラメーター化されます。

コマンド の再同期は、CursorLocation プロパティが adUseClient に設定されている場合に、Recordset オブジェクト Properties コレクション追加される動的プロパティです。

適用対象

Recordset オブジェクト (ADO)