Substitution de paramètres dans les instructions SQL de mise à jour

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation du BDE pour placer en mémoire cache les mises à jour - Index

Remarque : Le moteur de base de données Borland (BDE, Borland Database Engine) a été déprécié. Il ne sera donc pas amélioré. Par exemple, le BDE ne prendra jamais en charge Unicode. Vous ne devriez pas entreprendre de nouveaux développements avec BDE. Prévoyez plutôt de migrer vos applications de bases de données existantes de BDE vers dbExpress.

Les instructions SQL de mise à jour utilisent une forme spéciale de substitution de paramètres qui vous permet de substituer les anciennes ou les nouvelles valeurs de champs dans les mises à jour d'enregistrements. Quand l'éditeur SQL de mise à jour génère ses instructions, il détermine quelles valeurs de champs utiliser. Quand vous écrivez le code SQL de mise à jour, vous spécifiez les valeurs de champs à utiliser.

Quand le nom d'un paramètre correspond à celui d'une colonne d'une table, la nouvelle valeur du champ dans la mise à jour en mémoire cache de l'enregistrement est utilisée automatiquement comme valeur du paramètre. Quand le nom d'un paramètre correspond à celui d'une colonne commençant par la chaîne "OLD_", l'ancienne valeur du champ est utilisée. Par exemple, dans l'instruction SQL de mise à jour ci-dessous, le paramètre :LastName est automatiquement rempli avec la nouvelle valeur du champ dans la mise à jour en mémoire cache pour l'enregistrement inséré.

INSERT INTO Names
(LastName, FirstName, Address, City, State, Zip)
VALUES (:LastName, :FirstName, :Address, :City, :State, :Zip)

Les nouvelles valeurs de champs sont habituellement utilisées dans les instructions InsertSQL et ModifySQL. Dans la mise à jour d'un enregistrement modifié, la nouvelle valeur de champ du cache de mise à jour est utilisée par l'instruction UPDATE pour remplacer l'ancienne valeur de champ dans la table de base mise à jour.

Dans le cas d'un enregistrement supprimé, il n'y a pas de nouvelles valeurs, et la propriété DeleteSQL utilise donc la syntaxe ":OLD_FieldName". Les anciennes valeurs de champs sont aussi utilisées normalement dans la clause WHERE de l'instruction SQL pour une mise à jour par modification ou suppression pour déterminer quel enregistrement mettre à jour ou supprimer.

Dans la clause WHERE d'une instruction SQL de mise à jour UPDATE ou DELETE, fournissez au moins le nombre minimal de paramètres nécessaires pour identifier sans ambiguïté l'enregistrement de la table de base qui est mis à jour à partir des données en mémoire cache. Par exemple, dans une liste de clients, l'utilisation du nom de famille peut ne pas être suffisant pour identifier de manière unique l'enregistrement adéquat dans la table de base. Il peut y avoir plusieurs enregistrements sous le nom de "Martin". L'utilisation de paramètres pour le nom, le prénom et le numéro de téléphone peut constituer une combinaison assez précise, à défaut d'un code client unique.

Remarque :  Si vous créez des instructions SQL contenant des paramètres qui ne se réfèrent pas aux valeurs de champs originales ou modifiées, l'objet mise à jour ne sait pas comment relier leurs valeurs. Vous pouvez cependant le faire manuellement, en utilisant la propriété Query de l'objet mise à jour.

Voir aussi