Condividi tramite


Funzione MsiDatabaseApplyTransformA (msiquery.h)

La funzione msiDatabaseApplyTransform applica una trasformazione a un database.

Sintassi

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

Parametri

[in] hDatabase

Gestire il database ottenuto da MsiOpenDatabase alla trasformazione.

[in] szTransformFile

Specifica il nome del file di trasformazione da applicare.

[in] iErrorConditions

Condizioni di errore che devono essere eliminate. Questo parametro è un campo di bit che può contenere i bit seguenti.

Condizione di errore Significato
MSITRANSFORM_ERROR_ADDEXISTINGROW
0x0001
Aggiunta di una riga già esistente.
MSITRANSFORM_ERROR_DELMISSINGROW
0x0002
Eliminazione di una riga che non esiste.
MSITRANSFORM_ERROR_ADDEXISTINGTABLE
0x0004
Aggiunta di una tabella già esistente.
MSITRANSFORM_ERROR_DELMISSINGTABLE
0x0008
Eliminazione di una tabella che non esiste.
MSITRANSFORM_ERROR_UPDATEMISSINGROW
0x0010
Aggiornamento di una riga che non esiste.
MSITRANSFORM_ERROR_CHANGECODEPAGE
0x0020
Le tabelle codici della trasformazione e del database non corrispondono e nessuna delle due tabelle codici è neutra.
MSITRANSFORM_ERROR_VIEWTRANSFORM
0x0100
Creare la tabella _TransformView temporanea.

Valore restituito

La funzione MsiDatabaseApplyTransform restituisce uno dei valori seguenti:

Osservazioni

La funzione MsiDatabaseApplyTransform ritarda la trasformazione delle tabelle fino a quando non è necessaria. Tutte le tabelle da aggiungere o eliminare vengono elaborate immediatamente. Tuttavia, le modifiche apportate alla tabella esistente vengono ritardate fino al caricamento della tabella o al commit del database.

Si verifica un errore se msiDatabaseApplyTransform viene chiamato quando le tabelle sono già state caricate e salvate nell'archiviazione.

Poiché il delimitatore di elenco per trasformazioni, origini e patch è un punto e virgola, questo carattere non deve essere usato per nomi file o percorsi.

Questa funzione non può essere chiamata da azioni personalizzate. Una chiamata a questa funzione da un'azione personalizzata causa l'esito negativo della funzione.

Se la funzione non riesce, è possibile ottenere informazioni estese sull'errore usando MsiGetLastErrorRecord.

Nota

L'intestazione msiquery.h definisce MsiDatabaseApplyTransform come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows Installer 5.0 in Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 in Windows Server 2008 o Windows Vista. Windows Installer in Windows Server 2003 o Windows XP
piattaforma di destinazione Finestre
intestazione msiquery.h
libreria Msi.lib
dll Msi.dll

Vedere anche

funzioni di gestione del database

trasformazioni di database