Freigeben über


MsiDatabaseApplyTransformA-Funktion (msiquery.h)

Die MsiDatabaseApplyTransform--Funktion wendet eine Transformation auf eine Datenbank an.

Syntax

UINT MsiDatabaseApplyTransformA(
  [in] MSIHANDLE hDatabase,
  [in] LPCSTR    szTransformFile,
  [in] int       iErrorConditions
);

Parameter

[in] hDatabase

Behandeln Sie die Datenbank, die von MsiOpenDatabase in die Transformation abgerufen wurde.

[in] szTransformFile

Gibt den Namen der anzuwendenden Transformationsdatei an.

[in] iErrorConditions

Fehlerbedingungen, die unterdrückt werden sollen. Dieser Parameter ist ein Bitfeld, das die folgenden Bits enthalten kann.

Fehlerzustand Bedeutung
MSITRANSFORM_ERROR_ADDEXISTINGROW
0x0001
Hinzufügen einer zeile, die bereits vorhanden ist.
MSITRANSFORM_ERROR_DELMISSINGROW
0x0002
Löschen einer Zeile, die nicht vorhanden ist.
MSITRANSFORM_ERROR_ADDEXISTINGTABLE
0x0004
Hinzufügen einer tabelle, die bereits vorhanden ist.
MSITRANSFORM_ERROR_DELMISSINGTABLE
0x0008
Löschen einer Tabelle, die nicht vorhanden ist.
MSITRANSFORM_ERROR_UPDATEMISSINGROW
0x0010
Aktualisieren einer Zeile, die nicht vorhanden ist.
MSITRANSFORM_ERROR_CHANGECODEPAGE
0x0020
Transformations- und Datenbankcodeseiten stimmen nicht überein und es gibt keine neutrale Codepage.
MSITRANSFORM_ERROR_VIEWTRANSFORM
0x0100
Erstellen Sie die temporäre _TransformView Tabelle.

Rückgabewert

Die MsiDatabaseApplyTransform Funktion gibt einen der folgenden Werte zurück:

Bemerkungen

Die MsiDatabaseApplyTransform Funktion verzögert die Transformation von Tabellen, bis sie erforderlich ist. Alle hinzuzufügenden oder verworfenen Tabellen werden sofort verarbeitet. Änderungen an der vorhandenen Tabelle werden jedoch verzögert, bis die Tabelle geladen wird oder die Datenbank zugesichert wird.

Wenn MsiDatabaseApplyTransform- aufgerufen wird, wenn Tabellen bereits geladen und im Speicher gespeichert wurden, tritt ein Fehler auf.

Da das Listentrennzeichen für Transformationen, Quellen und Patches ein Semikolon ist, sollte dieses Zeichen nicht für Dateinamen oder Pfade verwendet werden.

Diese Funktion kann nicht aus benutzerdefinierten Aktionen aufgerufen werden. Ein Aufruf dieser Funktion aus einer benutzerdefinierten Aktion führt dazu, dass die Funktion fehlschlägt.

Wenn die Funktion fehlschlägt, können Sie erweiterte Fehlerinformationen mithilfe MsiGetLastErrorRecordabrufen.

Anmerkung

Der msiquery.h-Header definiert MsiDatabaseApplyTransform als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Windows Installer unter Windows Server 2003 oder Windows XP
Zielplattform- Fenster
Header- msiquery.h
Library Msi.lib
DLL- Msi.dll

Siehe auch

Datenbankverwaltungsfunktionen

Datenbanktransformationen