MsiViewGetErrorA-Funktion (msiquery.h)
Die MsiViewGetError-Funktion gibt den Fehler zurück, der in der MsiViewModify-Funktion aufgetreten ist.
Syntax
MSIDBERROR MsiViewGetErrorA(
[in] MSIHANDLE hView,
[out] LPSTR szColumnNameBuffer,
[in, out] LPDWORD pcchBuf
);
Parameter
[in] hView
Handle für die Ansicht.
[out] szColumnNameBuffer
Zeiger auf den Puffer, der den Null-Endungsspaltennamen 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 abschließende NULL-Zeichen. Bei Rückgabe von MSIDBERROR_NOERROR enthält pcchBuf die Anzahl der TCHARs, die in den Puffer geschrieben werden, ohne das abschließende 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 abschließende NULL-Zeichen. Wenn szColumnNameBuffer nicht groß genug ist, gibt die Funktion MSIDBERROR_MOREDATA zurück und speichert die erforderliche Größe ohne das abschließende NULL-Zeichen in der Variablen, auf die von pcchBuf verwiesen wird.
Rückgabewert
Diese Funktion gibt einen der folgenden Werte zurück.
Fehlercode | Bedeutung |
---|---|
|
Ein Argument war ungültig. |
|
Der Puffer war zu klein, um Daten zu empfangen. |
|
Fehler bei der Funktion. |
|
Die Funktion wurde ohne Fehler erfolgreich abgeschlossen. |
|
Der neue Datensatz dupliziert Primärschlüssel des vorhandenen Datensatzes in einer Tabelle. |
|
Es sind keine NULL-Werte zulässig. oder die Spalte wird gerade gelöscht, wird aber von einer anderen Zeile referenziert. |
|
Der entsprechende Datensatz in einer fremden Tabelle wurde nicht gefunden. |
|
Die Daten sind größer als der maximal zulässige Wert. |
|
Die Daten sind kleiner als der zulässige Mindestwert. |
|
Die Daten sind kein Element der in der Gruppe zulässigen Werte. |
|
Eine ungültige Versionszeichenfolge wurde bereitgestellt. |
|
Der Fall war ungültig. Die Groß-/Kleinschreibung muss ganz groß oder klein sein. |
|
Es wurde eine ungültige GUID angegeben. |
|
Es wurde ein ungültiger Wildcarddateiname angegeben, oder die Verwendung von Wildcards war ungültig. |
|
Es wurde ein ungültiger Bezeichner angegeben. |
|
Es wurden ungültige Sprach-IDs angegeben. |
|
Es wurde ein ungültiger Dateiname angegeben. |
|
Es wurde ein ungültiger Pfad angegeben. |
|
Es wurde eine ungültige bedingte Anweisung angegeben. |
|
Es wurde eine ungültige Formatzeichenfolge angegeben. |
|
Eine ungültige Vorlagenzeichenfolge wurde bereitgestellt. |
|
In der Spalte DefaultDir der Directory-Tabelle wurde eine ungültige Zeichenfolge angegeben. |
|
Es wurde eine ungültige Registrierungspfadzeichenfolge angegeben. |
|
In der CustomSource-Spalte der CustomAction-Tabelle wurde eine ungültige Zeichenfolge angegeben. |
|
Eine ungültige Eigenschaftszeichenfolge wurde bereitgestellt. |
|
Der _Validation Tabelle fehlt ein Verweis auf eine Spalte. |
|
Die Kategoriespalte der _Validation Tabelle für die Spalte ist ungültig. |
|
Es wurde ein ungültiger Ablagename angegeben. |
|
Die Tabelle in der Spalte Keytable der _Validation Tabelle wurde nicht gefunden oder geladen. |
|
Der Wert in der MaxValue-Spalte der _Validation Tabelle ist kleiner als der Wert in der Spalte MinValue. |
|
Ein ungültiger Verknüpfungszielname wurde angegeben. |
|
Die Zeichenfolge ist für die von der Spaltendefinition angegebene Länge zu lang. |
|
Es wurde ein ungültiges Lokalisierungsattribut 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 erfolgreicher Ausführung 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 wird, verbleiben keine Validierungsfehler mehr. Der MSIDBERROR-Rückgabewert gibt den Typ des Validierungsfehlers an, der für den Wert in der Spalte aufgetreten ist, die durch 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 Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
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 Functions