Méthode View.Modify

La méthode Modify de l’objet View modifie une ligne de base de données avec un objet Record modifié obtenu par la méthode Fetch.

Syntaxe

View.Modify(
  action,
  record
)

Paramètres

action

Action requise à effectuer sur la ligne de base de données. Cette action est l’une de celles indiquées dans le tableau suivant.

Nom de l'action Signification
msiViewModifySeek
–1
Actualise les informations dans l’enregistrement fourni sans modifier la position dans l’ensemble de résultats et sans affecter les opérations d’extraction suivantes. L’enregistrement peut ensuite être utilisé pour la mise à jour, la suppression et l’actualisation ultérieures. Toutes les colonnes de clé primaire de la table doivent se trouver dans la requête et l’enregistrement doit avoir au moins autant de champs que la requête. Seek ne peut pas être utilisé avec des requêtes multitables. Consultez les remarques. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyRefresh
0
Actualise les informations dans l’enregistrement. Doit d’abord appeler la méthode Fetch avec le même enregistrement. Échoue pour une ligne supprimée. Fonctionne avec les enregistrements en lecture-écriture et en lecture seule.
msiViewModifyInsert
1
Insère un enregistrement. Échoue si une ligne avec les mêmes clés primaires existe. Échoue avec une base de données en lecture seule. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyUpdate
2
Met à jour un enregistrement existant. Clés non primaires uniquement. Doit d’abord appeler la méthode Fetch avec le même enregistrement. Échoue avec un enregistrement supprimé. Fonctionne uniquement avec les enregistrements en lecture-écriture.
msiViewModifyAssign
3
Écrit les données actuelles dans le curseur dans une ligne de table. Met à jour l’enregistrement si les clés primaires correspondent à une ligne existante et les insèrent si elles ne correspondent pas. Échoue avec une base de données en lecture seule. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyReplace
4
Met à jour ou supprime et insère un enregistrement dans une table. Doit d’abord appeler la méthode Fetch avec le même enregistrement. Met à jour l’enregistrement si les clés primaires sont inchangées. Supprime l’ancienne ligne et insère une nouvelle si les clés primaires ont changé. Échoue avec une base de données en lecture seule. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyMerge
5
Insère ou valide un enregistrement dans une table. Insère si les clés primaires ne correspondent à aucune ligne et vérifie s’il existe une correspondance. Échoue si l’enregistrement ne correspond pas aux données de la table. Échoue s’il existe un enregistrement avec une clé en double qui n’est pas identique. Fonctionne uniquement avec les enregistrements en lecture-écriture. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyDelete
6
Supprime une ligne de la table. Doit d’abord appeler la méthode Fetch avec le même enregistrement. Échoue si la ligne a été supprimée. Fonctionne uniquement avec les enregistrements en lecture-écriture. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyInsertTemporary
7
Insère un enregistrement temporaire. Les informations ne sont pas persistantes. Échoue si une ligne avec la même clé primaire existe. Fonctionne uniquement avec les enregistrements en lecture-écriture. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyValidate
8
Valide un enregistrement. Ne valide pas entre les jointures. Doit d’abord appeler la méthode Fetch avec le même enregistrement. Obtient des erreurs de validation avec la méthode GetError. Fonctionne avec les enregistrements en lecture-écriture et en lecture seule. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyValidateNew
9
Valide un nouvel enregistrement. Ne valide pas entre les jointures. Recherche les clés en double. Obtient les erreurs de validation en appelant la méthode GetError. Nécessite l’appel de la méthode MsiDatabase.OpenView avec une valeur de modification. Fonctionne avec les enregistrements en lecture-écriture et en lecture seule. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyValidateField
10
Valide les champs d’un enregistrement extrait ou d’un nouvel enregistrement. Peut valider un ou plusieurs champs d’un enregistrement incomplet. Obtient les erreurs de validation en appelant la méthode GetError. Fonctionne avec les enregistrements en lecture-écriture et en lecture seule. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.
msiViewModifyValidateDelete
11
Valide un enregistrement qui sera supprimé ultérieurement. Doit d’abord appeler la méthode Fetch avec le même enregistrement. Échoue si une autre ligne fait référence aux clés primaires de cette ligne. La validation ne vérifie pas l’existence des clés primaires de cette ligne dans les propriétés ou les chaînes. Ne vérifie pas si une colonne est une clé étrangère à plusieurs tables. Obtient les erreurs de validation en appelant la méthode GetError. Fonctionne avec les enregistrements en lecture-écriture et en lecture seule. Ce mode ne peut pas être utilisé avec une vue contenant des jointures.

 

enregistrement

Obligatoire. Objet d’enregistrement obtenu par la méthode Fetch avec des données de champ modifiées.

Valeur retournée

Cette méthode ne retourne pas de valeur.

Notes

Cette méthode doit être appelée après la méthode Execute.

Pour exécuter une instruction SQL, une vue doit être créée. Toutefois, une vue qui ne crée pas d’ensemble de résultats, telle que CREATE TABLE ou INSERT INTO, ne peut pas être utilisée avec la méthode Modify pour mettre à jour les tables par le biais de la vue.

Les valeurs msiViewModifyValidate, msiViewModifyValidateNew, msiViewModifyValidateField et msiViewModifyValidateDelete de la méthode Modify n’effectuent pas de mises à jour réelles, ils garantissent que les données contenues dans l’enregistrement sont valides. L’utilisation de ces actions nécessite que la base de données contienne une table _Validation.

Vous ne pouvez pas extraire un enregistrement contenant des données binaires à partir d’une base de données, puis utiliser cet enregistrement pour insérer les données dans une base de données complètement différente. Pour déplacer des données binaires d’une base de données à une autre, vous devez exporter les données dans un fichier, puis les importer dans la nouvelle base de données à l’aide de la méthode SetStream de l’objet Record. Cela garantit que chaque base de données a sa propre copie des données binaires.

Notes

Les actions personnalisées peuvent uniquement ajouter, modifier ou supprimer des lignes, des colonnes ou des tables temporaires d’une base de données. Les actions personnalisées ne peuvent pas modifier les données persistantes dans une base de données, telles que les données qui font partie de la base de données stockée sur disque. Pour plus d’informations, consultez Accès à la session actuelle du programme d’installation à partir d’une action personnalisée.

 

Si la méthode échoue, vous pouvez obtenir des informations d’erreur détaillées à l’aide de la méthode LastErrorRecord.

Configuration requise

Condition requise Valeur
Version
Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer sur Windows Server 2003 ou Windows XP
DLL
Msi.dll
IID
IID_IView est défini comme 000C109C-0000-0000-C000-000000000046