重新同步 ADO) (命令动态属性

适用于:Access 2013、Office 2013

指定一个用户提供的命令字符串,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 TableOrders(订单),其主键 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 将被参数化。

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