Metodo Database.Merge

Il metodo Merge dell'oggetto Database unisce il database di riferimento al database di base.

Sintassi

Database.Merge(
  reference,
  errorTable
)

Parametri

reference

Oggetto Database necessario da unire nel database.

errorTable

Nome facoltativo di una tabella che contiene i nomi delle tabelle contenenti conflitti di unione, numero di righe in conflitto all'interno della tabella e un riferimento alla tabella con il conflitto di merge.

Valore restituito

Questo metodo non restituisce valori.

Commenti

La funzione MsiDatabaseMerge e il metodo Merge dell'oggetto Database non possono essere utilizzati per unire un modulo incluso in un pacchetto di installazione. Non devono essere usati per unire i moduli di merge in un pacchetto di Windows Installer. Per includere un modulo di merge in un pacchetto di installazione, gli autori dei pacchetti di installazione devono seguire le linee guida descritte nell'argomento Applicazione di moduli di merge.

Il metodo Merge non copia su file CAB incorporati o trasformazioni incorporate dal database di riferimento al database di destinazione. I flussi di dati incorporati elencati nella tabella binaria o nella tabella icona vengono copiati dal database di riferimento al database di destinazione. Le risorse di archiviazione incorporate nel database di riferimento non vengono copiate nel database di destinazione.

Se non viene specificata alcuna tabella, il messaggio di errore generale indica il numero di tabelle contenenti conflitti di unione. È possibile passare qualsiasi tabella, ma tutte le altre colonne devono essere nullable perché l'operazione per aggiornare la tabella degli errori ha esito negativo se una colonna non è nullable. È possibile passare anche una tabella appena creata perché il metodo Merge crea automaticamente le colonne utilizzate se vengono rilevati conflitti di merge. Per presentare conflitti di merge vengono utilizzate due colonne. La prima colonna è il nome della tabella e la colonna chiave primaria. La seconda colonna è il numero di righe della tabella che presentano errori di merge.

Se le tabelle con lo stesso nome in entrambi i database non corrispondono al numero di chiavi primarie, ai tipi di colonna, al numero di colonne o ai nomi di colonna, il metodo Merge ha esito negativo e invia un messaggio di errore che indica ciò che si è verificato.

Affinché la tabella Error rimanga, il gestore degli errori deve eseguire il commit del database a cui appartiene la tabella Error. Tuttavia, questo commit deve essere eseguito dopo aver usato la terza colonna per ottenere i riferimenti a tali tabelle in cui si sono verificati conflitti di merge.

Se il metodo ha esito negativo, è possibile ottenere informazioni estese sull'errore usando il metodo LastErrorRecord .

Requisiti

Requisito Valore
Versione
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
DLL
Msi.dll
IID
IID_IDatabase è definito come 000C109D-0000-0000-C000-000000000046