Freigeben über


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

Behandeln sie die Ansicht.

[out] szColumnNameBuffer

Zeigen Sie auf den Puffer, der den Namen der mit Null beendeten Spalte empfängt. Versuchen Sie nicht, die Größe des Puffers zu ermitteln, indem Sie für szColumnNameeinen Nullwert (Wert=0) ü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, nicht einschließlich des endenden Nullzeichens. Bei Rückgabe von MSIDBERROR_NOERROR enthält pcchBuf- die Anzahl der TCHARs, die in den Puffer geschrieben wurden, nicht einschließlich des endenden NULL-Zeichens. Dieser Parameter ist eine leere Zeichenfolge, wenn keine Fehler vorhanden sind.

[in, out] pcchBuf

Zeiger auf die Variable, die die Größe des Puffers in TCHARs angibt, auf den die Variable szColumnNameBufferverweist. Wenn die Funktion MSIDBERROR_NOERROR zurückgibt, enthält diese Variable die Größe der in szColumnNameBufferkopierten Daten, nicht einschließlich des endenden Nullzeichens. Wenn szColumnNameBuffer nicht groß genug ist, gibt die Funktion MSIDBERROR_MOREDATA zurück und speichert die erforderliche Größe, nicht einschließlich des endenden NULL-Zeichens, in der Variablen, auf die durch pcchBufverweist.

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 Nullwerte zulässig; oder die Spalte ist dabei, gelöscht zu werden, wird jedoch von einer anderen Zeile referenziert.
MSIDBERROR_BADLINK
Der entsprechende Datensatz in einer Fremdtabelle 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 werte, die in der Menge zulässig sind.
MSIDBERROR_BADVERSION
Es wurde eine ungültige Versionszeichenfolge angegeben.
MSIDBERROR_BADCASE
Der Fall war ungültig. Die Groß-/Kleinschreibung muss alle Groß- oder Kleinbuchstaben sein.
MSIDBERROR_BADGUID
Es wurde eine ungültige GUID bereitgestellt.
MSIDBERROR_BADWILDCARD
Es wurde ein ungültiger Wildcarddateiname angegeben, oder die Verwendung von Wildcards war ungültig.
MSIDBERROR_BADIDENTIFIER
Es wurde ein ungültiger Bezeichner angegeben.
MSIDBERROR_BADLANGUAGE
Ungültige Sprach-IDs wurden angegeben.
MSIDBERROR_BADFILENAME
Es wurde ein ungültiger Dateiname angegeben.
MSIDBERROR_BADPATH
Es wurde ein ungültiger Pfad angegeben.
MSIDBERROR_BADCONDITION
Es wurde eine ungültige bedingungsbedingte Anweisung angegeben.
MSIDBERROR_BADFORMATTED
Es wurde eine ungültige Formatzeichenfolge angegeben.
MSIDBERROR_BADTEMPLATE
Es wurde eine ungültige Vorlagenzeichenfolge angegeben.
MSIDBERROR_BADDEFAULTDIR
Eine ungültige Zeichenfolge wurde in der Spalte "DefaultDir" der tabelle Directory angegeben.
MSIDBERROR_BADREGPATH
Es wurde eine ungültige Registrierungspfadzeichenfolge angegeben.
MSIDBERROR_BADCUSTOMSOURCE
In der Spalte CustomSource der tabelle CustomAction wurde eine ungültige Zeichenfolge angegeben.
MSIDBERROR_BADPROPERTY
Es wurde eine ungültige Eigenschaftszeichenfolge angegeben.
MSIDBERROR_MISSINGDATA
Die _Validation Tabelle fehlt ein Verweis auf eine Spalte.
MSIDBERROR_BADCATEGORY
Die Kategoriespalte der _Validation Tabelle für die Spalte ist ungültig.
MSIDBERROR_BADCABINET
Es wurde ein ungültiger Cab-Name angegeben.
MSIDBERROR_BADKEYTABLE
Die Tabelle in der Spalte "Keytable" der _Validation Tabelle wurde nicht gefunden oder geladen.
MSIDBERROR_BADMAXMINVALUES
Der Wert in der Spalte "MaxValue" der _Validation Tabelle ist kleiner als der Wert in der Spalte "MinValue".
MSIDBERROR_BADSHORTCUT
Es wurde ein ungültiger Verknüpfungszielname angegeben.
MSIDBERROR_STRINGOVERFLOW
Die Zeichenfolge ist für die durch die Spaltendefinition angegebene Länge zu lang.
MSIDBERROR_BADLOCALIZEATTRIB
Es wurde ein ungültiges Lokalisierungsattribut bereitgestellt. (Primärschlüssel können nicht lokalisiert werden.)
 
 

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

Bemerkungen

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 gibt es die Anzahl der Zeichen, die in den Zeichenfolgenpuffer geschrieben wurden. 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 ermitteln, indem Sie null als szColumnNameBuffer oder eine Puffergröße von 0 in der DWORD- übergeben, auf die von pcchBufverwiesen wird.

Sobald MSIDBERROR_NOERROR zurückgegeben wird, bleiben keine weiteren Überprüfungsfehler mehr vorhanden. Der MSIDBERROR-Rückgabewert gibt den Typ des Überprüfungsfehlers an, der für den Wert in der Spalte aufgetreten ist, die durch die szColumnNameBufferidentifiziert wurde.

Anmerkung

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

Anforderung Wert
mindestens unterstützte 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- Fenster
Header- msiquery.h
Library Msi.lib
DLL- Msi.dll

Siehe auch

allgemeine Datenbankzugriffsfunktionen

Übergeben von Null als Argument von Windows Installer-Funktionen