Resync Command 属性 - 动态 (ADO)
指定用户提供的命令字符串,该字符串由Resync 方法发出,用于刷新 Unique Table 动态属性中命名的表中的数据。
设置和返回值
设置或返回 String 值,该值是一个命令字符串。
备注
Recordset 对象是对多个基表执行的 JOIN 操作的结果。 受影响的行取决于 Resync 方法的 AffectRecords 参数。 如果未设置 Unique Table 和 Resync 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 集合的动态属性。