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

适用于:Access 2013、Office 2013

指定一个用户提供的命令字符串,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 将被参数化。

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