Resync Command 属性 - 动态 (ADO)

指定用户提供的命令字符串,该字符串由Resync 方法发出,用于刷新 Unique Table 动态属性中命名的表中的数据。

设置和返回值

设置或返回 String 值,该值是一个命令字符串。

备注

Recordset 对象是对多个基表执行的 JOIN 操作的结果。 受影响的行取决于 Resync 方法的 AffectRecords 参数。 如果未设置 Unique TableResync Command 属性,则执行标准的 Resync 方法。

Resync Command 属性的命令字符串是一个参数化命令或存储过程,它能唯一地标识要刷新的行,并返回与要刷新行的列数和顺序相同的单个行。 命令字符串包含 Unique Table 中每个主键列的参数;否则,将返回运行时错误。 参数会自动填充要刷新的行中的主键值。

下面是基于 SQL 的两个示例:

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 = ?"  

Unique Table 是 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 (?)}"  

同样,Unique Table 是 Orders,其主键 OrderID 进行了参数化。

CursorLocation 属性设置为 adUseClient 时,Resync Command 是追加到 Recordset 对象 Properties 集合的动态属性。

应用于

记录集对象 (ADO)