Eventi
19 nov, 23 - 21 nov, 23
Ottenere il vantaggio competitivo necessario con potenti soluzioni di intelligenza artificiale e cloud partecipando a Microsoft Ignite online.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
La funzione MsiDatabaseMerge unisce due database, consentendo così righe duplicate.
UINT MsiDatabaseMergeA(
[in] MSIHANDLE hDatabase,
[in] MSIHANDLE hDatabaseMerge,
[in] LPCSTR szTableName
);
[in] hDatabase
Handle del database ottenuto da MsiOpenDatabase.
[in] hDatabaseMerge
Handle del database ottenuto da MsiOpenDatabase da unire nel database di base.
[in] szTableName
Nome della tabella in cui ricevere informazioni sui conflitti di merge.
La funzione msiDatabaseMerge
Codice restituito | Descrizione |
---|---|
|
Sono stati segnalati conflitti di unione di righe. |
|
È stato fornito un handle non valido o inattivo. |
|
È stata specificata una tabella non valida. |
|
La funzione ha avuto esito positivo. |
|
Differenza dello schema tra i due database. |
La funzione MsiDatabaseMerge
msiDatabaseMerge non esegue la copia su file CAB incorporati o trasformazioni incorporate dal database di riferimento al database di destinazione. I flussi di dati incorporati elencati nel tabella binaria o tabella icona vengono copiati dal database di riferimento al database di destinazione. L'archiviazione incorporata nel database di riferimento non viene copiata nel database di destinazione.
La funzione msiDatabaseMerge
Se il numero, il tipo o il nome delle colonne nelle tabelle corrispondenti sono diversi, lo schema dei due database non è compatibile e il programma di installazione arresta l'elaborazione delle tabelle e l'unione ha esito negativo. Il programma di installazione verifica che i due database abbiano lo stesso schema prima di verificare la presenza di conflitti di unione di righe. Se viene restituito ERROR_DATATYPE_MISMATCH, si garantisce che i database non siano stati modificati.
Se i dati in righe particolari differiscono, si tratta di un conflitto di unione di righe, il programma di installazione restituisce ERROR_FUNCTION_FAILED e crea una nuova tabella denominata szTableName. La prima colonna di questa tabella è il nome della tabella che presenta il conflitto. La seconda colonna indica il numero di righe nella tabella in cui si verifica il conflitto. La tabella che segnala i conflitti viene visualizzata nel modo seguente.
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 MsiDatabaseMerge 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.
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 |
formato definizione colonna
funzioni di gestione del database
Eventi
19 nov, 23 - 21 nov, 23
Ottenere il vantaggio competitivo necessario con potenti soluzioni di intelligenza artificiale e cloud partecipando a Microsoft Ignite online.
Iscriviti subito