Share via


Metodo View.Modify

Il metodo Modify dell'oggetto View modifica una riga di database con un oggetto Record modificato ottenuto dal metodo Fetch .

Sintassi

View.Modify(
  action,
  record
)

Parametri

action

Azione necessaria da eseguire nella riga del database. Questa azione è una di quelle visualizzate nella tabella seguente.

Nome azione Significato
msiViewModifySeek
–1
Aggiorna le informazioni nel record fornito senza modificare la posizione nel set di risultati e senza influire sulle operazioni di recupero successive. Il record può quindi essere usato per aggiornamento, eliminazione e aggiornamento successivi. Tutte le colonne chiave primaria della tabella devono trovarsi nella query e il record deve avere almeno il numero di campi della query. La ricerca non può essere usata con query multitable. Vedere le osservazioni. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyRefresh
0
Aggiorna le informazioni nel record. Deve prima chiamare il metodo Fetch con lo stesso record. Errore per una riga eliminata. Funziona con record di sola lettura e di sola lettura.
msiViewModifyInsert
1
Inserisce un record. Ha esito negativo se esiste una riga con le stesse chiavi primarie. Ha esito negativo con un database di sola lettura. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyUpdate
2
Aggiornamenti un record esistente. Solo chiavi non primarie. Deve prima chiamare il metodo Fetch con lo stesso record. Ha esito negativo con un record eliminato. Funziona solo con record di lettura-scrittura.
msiViewModifyAssign
3
Scrive i dati correnti nel cursore in una riga di tabella. Aggiornamenti registrare se le chiavi primarie corrispondono a una riga esistente e inserisce se non corrispondono. Ha esito negativo con un database di sola lettura. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyReplace
4
Aggiornamenti o elimina e inserisce un record in una tabella. Deve prima chiamare il metodo Fetch con lo stesso record. Aggiornamenti record se le chiavi primarie sono invariate. Elimina la riga precedente e inserisce nuove se le chiavi primarie sono state modificate. Ha esito negativo con un database di sola lettura. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyMerge
5
Inserisce o convalida un record in una tabella. Inserisce se le chiavi primarie non corrispondono a alcuna riga e convalidano se è presente una corrispondenza. Ha esito negativo se il record non corrisponde ai dati nella tabella. Ha esito negativo se è presente un record con una chiave duplicata che non è identica. Funziona solo con record di lettura-scrittura. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyDelete
6
Rimuove una riga dalla tabella. Deve prima chiamare il metodo Fetch con lo stesso record. Ha esito negativo se la riga è stata eliminata. Funziona solo con record di lettura-scrittura. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyInsertTemporary
7
Inserisce un record temporaneo. Le informazioni non sono persistenti. Ha esito negativo se esiste una riga con la stessa chiave primaria. Funziona solo con record di lettura-scrittura. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyValidate
8
Convalida un record. Non convalida tra join. Deve prima chiamare il metodo Fetch con lo stesso record. Ottenere errori di convalida con il metodo GetError . Funziona con record di sola lettura e lettura. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyValidateNew
9
Convalida un nuovo record. Non convalida tra join. Verifica la presenza di chiavi duplicate. Ottiene gli errori di convalida chiamando il metodo GetError . Richiede la chiamata al metodo MsiDatabase.OpenView con un valore di modifica. Funziona con record di sola lettura e lettura. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyValidateField
10
Convalida i campi di un record recuperato o nuovo. Può convalidare uno o più campi di un record incompleto. Ottiene gli errori di convalida chiamando il metodo GetError . Funziona con record di sola lettura e lettura. Questa modalità non può essere usata con una visualizzazione contenente join.
msiViewModifyValidateDelete
11
Convalida un record che verrà eliminato in un secondo momento. Deve prima chiamare il metodo Fetch con lo stesso record. Ha esito negativo se un'altra riga fa riferimento alle chiavi primarie di questa riga. La convalida non verifica l'esistenza delle chiavi primarie di questa riga in proprietà o stringhe. Non verifica se una colonna è una chiave esterna a più tabelle. Ottenere errori di convalida chiamando il metodo GetError . Funziona con record di sola lettura e lettura. Questa modalità non può essere usata con una visualizzazione contenente join.

 

Registrazione

Obbligatorio. Oggetto Record ottenuto dal metodo Fetch con dati di campo modificati.

Valore restituito

Questo metodo non restituisce valori.

Commenti

Questo metodo deve essere chiamato dopo il metodo Execute .

Per eseguire qualsiasi istruzione SQL, è necessario creare una vista. Tuttavia, una vista che non crea un set di risultati, ad esempio CREATE TABLE o INSERT INTO, non può essere usata con il metodo Modify per aggiornare le tabelle anche se la vista.

I valori msiViewModifyValidate, msiViewModifyValidateNew, msiViewModidateField e msiViewModifyValidateDelete del metodo Modify non eseguono aggiornamenti effettivi; assicurarsi che i dati nel record siano validi. L'uso di queste azioni richiede che il database contenga una tabella _Validation .

Non è possibile recuperare un record contenente dati binari da un database e quindi usare tale record per inserire i dati in un database completamente diverso. Per spostare i dati binari da un database a un altro, è necessario esportare i dati in un file e quindi importarlo nel nuovo database usando il metodo SetStream dell'oggetto Record . Ciò garantisce che ogni database disponga della propria copia dei dati binari.

Nota

Le azioni personalizzate possono aggiungere, modificare o rimuovere righe, colonne o tabelle temporanee da un database. Le azioni personalizzate non possono modificare i dati persistenti in un database, ad esempio i dati che fanno parte del database archiviato su disco. Per altre informazioni, vedere Accesso alla sessione del programma di installazione corrente dall'interno di un'azione personalizzata.

 

Se il metodo ha esito negativo, è possibile ottenere informazioni di errore estese 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_IView viene definito come 000C109C-0000-0000-C000-00000000000000046