Share via


MsiViewGetErrorW-Funktion (msiquery.h)

Die MsiViewGetError-Funktion gibt den Fehler zurück, der in der MsiViewModify-Funktion aufgetreten ist.

Syntax

MSIDBERROR MsiViewGetErrorW(
  [in]      MSIHANDLE hView,
  [out]     LPWSTR    szColumnNameBuffer,
  [in, out] LPDWORD   pcchBuf
);

Parameter

[in] hView

Handle mit der Ansicht.

[out] szColumnNameBuffer

Zeiger auf den Puffer, der den null-beendeten Spaltennamen empfängt. Versuchen Sie nicht, die Größe des Puffers zu bestimmen, indem Sie null (value=0) für szColumnName übergeben. Sie können die Größe des Puffers abrufen, indem Sie eine leere Zeichenfolge übergeben (z. B. "). Die Funktion gibt dann MSIDBERROR_MOREDATA zurück, und pcchBuf enthält die erforderliche Puffergröße in TCHARs, ohne das beendende NULL-Zeichen. Bei Rückgabe von MSIDBERROR_NOERROR enthält pcchBuf die Anzahl der TCHARs, die in den Puffer geschrieben wurden, ohne das beendende NULL-Zeichen. Dieser Parameter ist eine leere Zeichenfolge, wenn keine Fehler vorliegen.

[in, out] pcchBuf

Zeiger auf die Variable, die in TCHARs die Größe des Puffers angibt, auf den die Variable szColumnNameBuffer verweist. Wenn die Funktion MSIDBERROR_NOERROR zurückgibt, enthält diese Variable die Größe der in szColumnNameBuffer kopierten Daten, ohne das beendende NULL-Zeichen. Wenn szColumnNameBuffer nicht groß genug ist, gibt die Funktion MSIDBERROR_MOREDATA zurück und speichert die erforderliche Größe ohne das beendende NULL-Zeichen in der Variablen, auf die von pcchBuf verwiesen wird.

Rückgabewert

Diese Funktion gibt einen der folgenden Werte zurück.

Fehlercode Bedeutung
MSIDBERROR_INVALIDARG
Ein Argument war ungültig.
MSIDBERROR_MOREDATA
Der Puffer war zu klein, um Daten zu empfangen.
MSIDBERROR_FUNCTIONERROR
Fehler bei der Funktion.
MSIDBERROR_NOERROR
Die Funktion wurde ohne Fehler erfolgreich abgeschlossen.
MSIDBERROR_DUPLICATEKEY
Der neue Datensatz dupliziert Primärschlüssel des vorhandenen Datensatzes in einer Tabelle.
MSIDBERROR_REQUIRED
Es sind keine NULL-Werte zulässig. oder die Spalte wird gerade gelöscht, wird aber von einer anderen Zeile referenziert.
MSIDBERROR_BADLINK
Der entsprechende Datensatz in einer fremden Tabelle wurde nicht gefunden.
MSIDBERROR_OVERFLOW
Die Daten sind größer als der zulässige Maximalwert.
MSIDBERROR_UNDERFLOW
Die Daten sind kleiner als der zulässige Mindestwert.
MSIDBERROR_NOTINSET
Die Daten sind kein Element der im Satz zulässigen Werte.
MSIDBERROR_BADVERSION
Eine ungültige Versionszeichenfolge wurde angegeben.
MSIDBERROR_BADCASE
Der Fall war ungültig. Der Groß- oder Kleinbuchstaben muss ganz groß sein.
MSIDBERROR_BADGUID
Eine ungültige GUID wurde angegeben.
MSIDBERROR_BADWILDCARD
Ein ungültiger Feldhalterdateiname wurde angegeben, oder die Verwendung von Feldhaltern war ungültig.
MSIDBERROR_BADIDENTIFIER
Ein ungültiger Bezeichner wurde angegeben.
MSIDBERROR_BADLANGUAGE
Es wurden ungültige Sprach-IDs angegeben.
MSIDBERROR_BADFILENAME
Ein ungültiger Dateiname wurde angegeben.
MSIDBERROR_BADPATH
Ein ungültiger Pfad wurde angegeben.
MSIDBERROR_BADCONDITION
Eine ungültige bedingte Anweisung wurde angegeben.
MSIDBERROR_BADFORMATTED
Es wurde eine ungültige Formatzeichenfolge angegeben.
MSIDBERROR_BADTEMPLATE
Eine ungültige Vorlagenzeichenfolge wurde angegeben.
MSIDBERROR_BADDEFAULTDIR
Eine ungültige Zeichenfolge wurde in der DefaultDir-Spalte der Directory-Tabelle angegeben.
MSIDBERROR_BADREGPATH
Es wurde eine ungültige Registrierungspfadzeichenfolge angegeben.
MSIDBERROR_BADCUSTOMSOURCE
In der CustomSource-Spalte der CustomAction-Tabelle wurde eine ungültige Zeichenfolge angegeben.
MSIDBERROR_BADPROPERTY
Eine ungültige Eigenschaftszeichenfolge wurde angegeben.
MSIDBERROR_MISSINGDATA
Der _Validation Tabelle fehlt ein Verweis auf eine Spalte.
MSIDBERROR_BADCATEGORY
Die Kategoriespalte der _Validation Tabelle für die Spalte ist ungültig.
MSIDBERROR_BADCABINET
Ein ungültiger Ablagename wurde angegeben.
MSIDBERROR_BADKEYTABLE
Die Tabelle in der Spalte Keytable der _Validation Tabelle wurde nicht gefunden oder geladen.
MSIDBERROR_BADMAXMINVALUES
Der Wert in der MaxValue-Spalte der _Validation Tabelle ist kleiner als der Wert in der MinValue-Spalte.
MSIDBERROR_BADSHORTCUT
Ein ungültiger Verknüpfungszielname wurde angegeben.
MSIDBERROR_STRINGOVERFLOW
Die Zeichenfolge ist für die von der Spaltendefinition angegebene Länge zu lang.
MSIDBERROR_BADLOCALIZEATTRIB
Ein ungültiges Lokalisierungsattribut wurde angegeben. (Primärschlüssel können nicht lokalisiert werden.)
 
 

Beachten Sie, dass diese Funktion in Situationen mit wenig Arbeitsspeicher eine STATUS_NO_MEMORY Ausnahme auslösen kann.

Hinweise

Sie sollten die MsiViewGetError-Funktion nur aufrufen, wenn MsiViewModify ERROR_INVALID_DATA zurückgibt, was angibt, dass die Daten ungültig sind. Fehler werden nur für MSIMODIFY_VALIDATE, MSIMODIFY_VALIDATE_NEW und MSIMODIFY_VALIDATEFIELD aufgezeichnet.

Wenn ERROR_MORE_DATA zurückgegeben wird, gibt der Parameter, der ein Zeiger ist, die Größe des Puffers an, der zum Halten der Zeichenfolge erforderlich ist. Bei Erfolg wird die Anzahl der Zeichen angegeben, die in den Zeichenfolgenpuffer geschrieben werden. Daher können Sie die erforderliche Größe des Puffers abrufen, indem Sie einen kleinen Puffer (mindestens ein Zeichen) übergeben und den Wert bei pcchPathBuf untersuchen, wenn die Funktion MSIDBERROR_MOREDATA zurückgibt. Versuchen Sie nicht, die Größe des Puffers zu bestimmen, indem Sie null als szColumnNameBuffer oder eine Puffergröße von 0 im DWORD übergeben, auf das von pcchBuf verwiesen wird.

Sobald MSIDBERROR_NOERROR zurückgegeben wurde, bleiben keine Weiteren Validierungsfehler mehr erhalten. Der MSIDBERROR-Rückgabewert gibt den Typ des Validierungsfehlers an, der sich für den Wert in der Spalte befindet, die vom szColumnNameBuffer identifiziert wurde.

Hinweis

Der msiquery.h-Header definiert MsiViewGetError als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Windows Installer unter Windows Server 2003 oder Windows XP
Zielplattform Windows
Kopfzeile msiquery.h
Bibliothek Msi.lib
DLL Msi.dll

Weitere Informationen

Allgemeine Datenbankzugriffsfunktionen

Übergeben von Null als Argument von Windows Installer-Funktionen