View.Modify-Methode
Die Modify-Methode des View-Objekts ändert eine Datenbankzeile mit einem geänderten Record-Objekt, das von der Fetch-Methode abgerufen wird.
Syntax
View.Modify(
action,
record
)
Parameter
-
action
-
Erforderliche Aktion, die für die Datenbankzeile ausgeführt werden muss. Diese Aktion ist eine der in der folgenden Tabelle aufgeführten Aktionen.
Name der Aktion Bedeutung - msiViewModifySeek
- –1
Aktualisiert die Informationen im angegebenen Datensatz, ohne die Position im Resultset zu ändern und ohne auswirkungen auf nachfolgende Abrufvorgänge. Der Datensatz kann dann für nachfolgende Updates, Löschungen und Aktualisierungen verwendet werden. Alle Primärschlüsselspalten der Tabelle müssen sich in der Abfrage befinden, und der Datensatz muss mindestens so viele Felder wie die Abfrage enthalten. Seek kann nicht mit mehrtabellen Abfragen verwendet werden. Weitere Informationen finden Sie in den Hinweisen. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyRefresh
- 0
Aktualisiert die Informationen im Datensatz. Zuerst muss die Fetch-Methode mit demselben Datensatz aufgerufen werden. Fehler bei einer gelöschten Zeile. Funktioniert sowohl mit Lese-/Schreib- als auch mit schreibgeschützten Datensätzen. - msiViewModifyInsert
- 1
Fügt einen Datensatz ein. Schlägt fehl, wenn eine Zeile mit denselben Primärschlüsseln vorhanden ist. Fehler bei einer schreibgeschützten Datenbank. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyUpdate
- 2
Aktualisiert einen vorhandenen Datensatz. Nur Nicht-Primärschlüssel. Zuerst muss die Fetch-Methode mit demselben Datensatz aufgerufen werden. Fehler bei einem gelöschten Datensatz. Funktioniert nur mit Datensätzen mit Lese-/Schreibzugriff. - msiViewModifyAssign
- 3
Schreibt aktuelle Daten im Cursor in eine Tabellenzeile. Aktualisiert den Datensatz, wenn die Primärschlüssel mit einer vorhandenen Zeile übereinstimmen, und fügt ein, wenn sie nicht übereinstimmen. Fehler bei einer schreibgeschützten Datenbank. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyReplace
- 4
Aktualisiert oder löscht einen Datensatz und fügt diesen in eine Tabelle ein. Zuerst muss die Fetch-Methode mit demselben Datensatz aufgerufen werden. Aktualisiert den Datensatz, wenn die Primärschlüssel unverändert sind. Löscht die alte Zeile und fügt neue ein, wenn sich Primärschlüssel geändert haben. Fehler bei einer schreibgeschützten Datenbank. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyMerge
- 5
Fügt einen Datensatz in eine Tabelle ein oder überprüft sie. Fügt ein, wenn Primärschlüssel keiner Zeile entsprechen, und überprüft, ob eine Übereinstimmung vorliegt. Schlägt fehl, wenn der Datensatz nicht mit den Daten in der Tabelle übereinstimmt. Schlägt fehl, wenn ein Datensatz mit einem doppelten Schlüssel vorhanden ist, der nicht identisch ist. Funktioniert nur mit Datensätzen mit Lese-/Schreibzugriff. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyDelete
- 6
Entfernt eine Zeile aus der Tabelle. Zuerst muss die Fetch-Methode mit demselben Datensatz aufgerufen werden. Schlägt fehl, wenn die Zeile gelöscht wurde. Funktioniert nur mit Datensätzen mit Lese-/Schreibzugriff. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyInsertTemporary
- 7
Fügt einen temporären Datensatz ein. Die Informationen sind nicht persistent. Schlägt fehl, wenn eine Zeile mit demselben Primärschlüssel vorhanden ist. Funktioniert nur mit Datensätzen mit Lese-/Schreibzugriff. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyValidate
- 8
Überprüft einen Datensatz. Überprüft nicht joinübergreifend. Zuerst muss die Fetch-Methode mit demselben Datensatz aufgerufen werden. Abrufen von Validierungsfehlern mit der GetError-Methode. Funktioniert mit Lese-/Schreib- und schreibgeschützten Datensätzen. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyValidateNew
- 9
Überprüft einen neuen Datensatz. Überprüft nicht joinübergreifend. Sucht nach doppelten Schlüsseln. Ruft Validierungsfehler ab, indem die GetError-Methode aufgerufen wird. Erfordert das Aufrufen der MsiDatabase.OpenView-Methode mit einem Modify-Wert. Funktioniert mit Lese-/Schreib- und schreibgeschützten Datensätzen. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyValidateField
- 10
Überprüft Felder eines abgerufenen oder neuen Datensatzes. Kann ein oder mehrere Felder eines unvollständigen Datensatzes überprüfen. Ruft Validierungsfehler ab, indem die GetError-Methode aufgerufen wird. Funktioniert mit Lese-/Schreib- und schreibgeschützten Datensätzen. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. - msiViewModifyValidateDelete
- 11
Überprüft einen Datensatz, der später gelöscht wird. Zuerst muss die Fetch-Methode mit demselben Datensatz aufgerufen werden. Schlägt fehl, wenn eine andere Zeile auf die Primärschlüssel dieser Zeile verweist. Bei der Überprüfung wird nicht überprüft, ob die Primärschlüssel dieser Zeile in Eigenschaften oder Zeichenfolgen vorhanden sind. Überprüft nicht, ob eine Spalte ein Fremdschlüssel für mehrere Tabellen ist. Rufen Sie Validierungsfehler ab, indem Sie die GetError-Methode aufrufen. Funktioniert mit Lese-/Schreib- und schreibgeschützten Datensätzen. Dieser Modus kann nicht mit einer Ansicht verwendet werden, die Joins enthält. -
record
-
Erforderlich. Datensatzobjekt, das von der Fetch-Methode mit geänderten Felddaten abgerufen wurde.
Rückgabewert
Diese Methode gibt keinen Wert zurück.
Hinweise
Diese Methode muss nach der Execute-Methode aufgerufen werden.
Zum Ausführen einer SQL-Anweisung muss eine Sicht erstellt werden. Eine Sicht, die kein ResultSet erstellt, z. B. CREATE TABLE oder INSERT INTO, kann jedoch nicht mit der Modify-Methode verwendet werden, um Tabellen über die Sicht zu aktualisieren.
Die Werte msiViewModifyValidate, msiViewModifyValidateNew, msiViewModifyValidateField und msiViewModifyValidateDelete der Modify-Methode führen keine tatsächlichen Updates durch. Sie stellen sicher, dass die Daten im Datensatz gültig sind. Die Verwendung dieser Aktionen erfordert, dass die Datenbank eine _ Validierungstabelle enthält.
Sie können keinen Datensatz mit Binärdaten aus einer Datenbank abrufen und dann mit diesem Datensatz die Daten in eine völlig andere Datenbank einfügen. Um Binärdaten aus einer Datenbank in eine andere zu verschieben, sollten Sie die Daten in eine Datei exportieren und sie dann mithilfe der SetStream-Methode des Record-Objekts in die neue Datenbank importieren. Dadurch wird sichergestellt, dass jede Datenbank über eine eigene Kopie der Binärdaten verfügt.
Hinweis
Benutzerdefinierte Aktionen können einer Datenbank nur temporäre Zeilen, Spalten oder Tabellen hinzufügen, ändern oder daraus entfernen. Benutzerdefinierte Aktionen können keine persistenten Daten in einer Datenbank ändern, z. B. Daten, die Teil der auf dem Datenträger gespeicherten Datenbank sind. Weitere Informationen finden Sie unter Zugreifen auf die aktuelle Installersitzung aus einer benutzerdefinierten Aktion.
Wenn bei der Methode ein Fehler auftritt, können Sie erweiterte Fehlerinformationen mithilfe der LastErrorRecord-Methode abrufen.
Anforderungen
| Anforderung | Wert |
|---|---|
| Version |
Windows Installer 5.0 auf Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 auf Windows Server 2008 oder Windows Vista. Windows Installationsprogramm auf Windows Server 2003 oder Windows XP |
| DLL |
|
| IID |
IID IView ist als _ 000C109C-0000-0000-C000-00000000046 definiert. |