Resync Command, propriété dynamique (ADO)
Spécifie une chaîne de commande fournie par l’utilisateur que la méthode Resync émet pour actualiser les données de la table nommée dans la propriété dynamique Unique Table.
Paramètres et valeurs de retour
Définit ou retourne une valeur String qui est une chaîne de commande.
Notes
L’objet Recordset est le résultat d’une opération JOIN exécutée sur plusieurs tables de base. Les lignes affectées dépendent du paramètre AffectRecords de la méthode Resync. La méthode Resync standard est exécutée si les propriétés Unique Table et Resync Command ne sont pas définies.
La chaîne de commande de la propriété Resync Command est une commande paramétrable ou une procédure stockée qui identifie de manière unique la ligne actualisée et retourne une seule ligne contenant le même nombre et le même ordre de colonnes que la ligne à actualiser. La chaîne de commande contient un paramètre pour chaque colonne de clé primaire dans Unique Table ; sinon, une erreur d’exécution est retournée. Les paramètres sont automatiquement renseignés avec les valeurs de clé primaire de la ligne à actualiser.
Voici deux exemples basés sur SQL :
1) L’objet Recordset est défini par une commande :
SELECT * FROM Customers JOIN Orders ON
Customers.CustomerID = Orders.CustomerID
WHERE city = 'Seattle'
ORDER BY CustomerID
La propriété Resync Command est définie sur :
"SELECT * FROM
(SELECT * FROM Customers JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
city = 'Seattle' ORDER BY CustomerID)
WHERE Orders.OrderID = ?"
Unique Table est Orders et sa clé primaire, OrderID, est paramétrée. La sous-sélection permet de s’assurer, par programmation, que le même nombre et le même ordre de colonnes sont retournés comme par la commande d’origine.
2) L’objet Recordset est défini par une procédure stockée :
CREATE PROC Custorders @CustomerID char(5) AS
SELECT * FROM Customers JOIN Orders ON
Customers.CustomerID = Orders.CustomerID
WHERE Customers.CustomerID = @CustomerID
La méthode Resync doit exécuter la procédure stockée suivante :
CREATE PROC CustordersResync @ordid int AS
SELECT * FROM Customers JOIN Orders ON
Customers.CustomerID = Orders.CustomerID
WHERE Orders.ordid = @ordid
La propriété Resync Command est définie sur :
"{call CustordersResync (?)}"
Là encore, Unique Table est Orders et sa clé primaire, OrderID, est paramétrée.
Resync Command est une propriété dynamique ajoutée à la collection Properties de l’objet Recordset lorsque la propriété CursorLocation est définie sur adUseClient.