Funzione MsiViewGetErrorA (msiquery.h)
La funzione MsiViewGetError restituisce l'errore che si è verificato nella funzione MsiViewModify .
Sintassi
MSIDBERROR MsiViewGetErrorA(
[in] MSIHANDLE hView,
[out] LPSTR szColumnNameBuffer,
[in, out] LPDWORD pcchBuf
);
Parametri
[in] hView
Handle per la visualizzazione.
[out] szColumnNameBuffer
Puntatore al buffer che riceve il nome della colonna con terminazione Null. Non tentare di determinare le dimensioni del buffer passando un valore Null (value=0) per szColumnName. È possibile ottenere le dimensioni del buffer passando una stringa vuota (ad esempio ""). La funzione restituisce quindi MSIDBERROR_MOREDATA e pcchBuf contiene le dimensioni del buffer necessarie in TCHAR, senza includere il carattere null di terminazione. In caso di restituzione di MSIDBERROR_NOERROR, pcchBuf contiene il numero di TCHAR scritti nel buffer, senza includere il carattere Null di terminazione. Questo parametro è una stringa vuota se non sono presenti errori.
[in, out] pcchBuf
Puntatore alla variabile che specifica le dimensioni, in TCHAR, del buffer a cui punta la variabile szColumnNameBuffer. Quando la funzione restituisce MSIDBERROR_NOERROR, questa variabile contiene le dimensioni dei dati copiati in szColumnNameBuffer, senza includere il carattere Null di terminazione. Se szColumnNameBuffer non è sufficientemente grande, la funzione restituisce MSIDBERROR_MOREDATA e archivia le dimensioni necessarie, senza includere il carattere Null di terminazione, nella variabile a cui punta pcchBuf.
Valore restituito
Questa funzione restituisce uno dei valori seguenti.
Codice di errore | Significato |
---|---|
|
Un argomento non è valido. |
|
Il buffer era troppo piccolo per ricevere i dati. |
|
La funzione non è riuscita. |
|
La funzione è stata completata correttamente senza errori. |
|
Il nuovo record duplica le chiavi primarie del record esistente in una tabella. |
|
Non sono consentiti valori Null; o la colonna sta per essere eliminata, ma viene fatto riferimento da un'altra riga. |
|
Impossibile trovare il record corrispondente in una tabella esterna. |
|
I dati sono maggiori del valore massimo consentito. |
|
I dati sono inferiori al valore minimo consentito. |
|
I dati non sono membri dei valori consentiti nel set. |
|
È stata specificata una stringa di versione non valida. |
|
Il caso non è valido. La maiuscola deve essere tutte maiuscole o minuscole. |
|
È stato fornito un GUID non valido. |
|
È stato specificato un nome di file con caratteri jolly non validi oppure l'uso di caratteri jolly non è valido. |
|
È stato fornito un identificatore non valido. |
|
Sono stati specificati ID lingua non validi. |
|
È stato specificato un nome file non valido. |
|
È stato fornito un percorso non valido. |
|
È stata fornita un'istruzione condizionale non valida. |
|
È stata specificata una stringa di formato non valida. |
|
È stata fornita una stringa di modello non valida. |
|
Nella colonna DefaultDir della tabella Directory è stata specificata una stringa non valida. |
|
È stata specificata una stringa di percorso del Registro di sistema non valida. |
|
È stata specificata una stringa non valida nella colonna CustomSource della tabella CustomAction . |
|
È stata specificata una stringa di proprietà non valida. |
|
La tabella _Validation manca un riferimento a una colonna. |
|
La colonna category della tabella _Validation per la colonna non è valida. |
|
È stato specificato un nome cab non valido. |
|
La tabella nella colonna Keytable della tabella _Validation non è stata trovata o caricata. |
|
Il valore nella colonna MaxValue della tabella _Validation è minore del valore nella colonna MinValue. |
|
È stato specificato un nome di destinazione del collegamento non valido. |
|
La stringa è troppo lunga per la lunghezza specificata dalla definizione di colonna. |
|
È stato fornito un attributo di localizzazione non valido. Le chiavi primarie non possono essere localizzate. |
Si noti che in situazioni di memoria insufficiente questa funzione può generare un'eccezione STATUS_NO_MEMORY.
Commenti
È consigliabile chiamare la funzione MsiViewGetError solo quando MsiViewModify restituisce ERROR_INVALID_DATA, a indicare che i dati non sono validi. Gli errori vengono registrati solo per MSIMODIFY_VALIDATE, MSIMODIFY_VALIDATE_NEW e MSIMODIFY_VALIDATEFIELD.
Se viene restituito ERROR_MORE_DATA, il parametro che è un puntatore restituisce le dimensioni del buffer necessarie per contenere la stringa. In caso di esito positivo, assegna il numero di caratteri scritti nel buffer di stringhe. È quindi possibile ottenere le dimensioni necessarie del buffer passando un buffer piccolo (un carattere minimo) ed esaminando il valore in pcchPathBuf quando la funzione restituisce MSIDBERROR_MOREDATA. Non tentare di determinare le dimensioni del buffer passando null come szColumnNameBuffer o una dimensione del buffer pari a 0 nella DWORD a cui fa riferimento pcchBuf.
Una volta restituito MSIDBERROR_NOERROR, non rimangono altri errori di convalida. Il valore restituito MSIDBERROR indica il tipo di errore di convalida che si è verificato per il valore presente nella colonna identificata da szColumnNameBuffer.
Nota
L'intestazione msiquery.h definisce MsiViewGetError come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
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 | Windows |
Intestazione | msiquery.h |
Libreria | Msi.lib |
DLL | Msi.dll |
Vedi anche
Funzioni di accesso al database generale
Passaggio di Null come argomento delle funzioni di Windows Installer