Función MsiViewGetErrorA (msiquery.h)
La función msiViewGetError
Sintaxis
MSIDBERROR MsiViewGetErrorA(
[in] MSIHANDLE hView,
[out] LPSTR szColumnNameBuffer,
[in, out] LPDWORD pcchBuf
);
Parámetros
[in] hView
Controle a la vista.
[out] szColumnNameBuffer
Puntero al búfer que recibe el nombre de columna terminada en NULL. No intente determinar el tamaño del búfer pasando un valor NULL (value=0) para szColumnName. Puede obtener el tamaño del búfer pasando una cadena vacía (por ejemplo, ""). A continuación, la función devuelve MSIDBERROR_MOREDATA y pcchBuf contiene el tamaño de búfer necesario en TCHAR, no incluido el carácter nulo de terminación. Al devolver MSIDBERROR_NOERROR, pcchBuf contiene el número de TCHAR escritos en el búfer, no incluido el carácter nulo de terminación. Este parámetro es una cadena vacía si no hay errores.
[in, out] pcchBuf
Puntero a la variable que especifica el tamaño, en TCHAR, del búfer al que apunta la variable szColumnNameBuffer. Cuando la función devuelve MSIDBERROR_NOERROR, esta variable contiene el tamaño de los datos copiados en szColumnNameBuffer, sin incluir el carácter NULO de terminación. Si szColumnNameBuffer no es lo suficientemente grande, la función devuelve MSIDBERROR_MOREDATA y almacena el tamaño necesario, no incluido el carácter nulo de terminación, en la variable a la que apunta pcchBuf.
Valor devuelto
Esta función devuelve uno de los siguientes valores.
Código de error | Significado |
---|---|
|
Un argumento no era válido. |
|
El búfer era demasiado pequeño para recibir datos. |
|
Error en la función. |
|
La función se completó correctamente sin errores. |
|
El nuevo registro duplica las claves principales del registro existente en una tabla. |
|
No se permiten valores NULL; o la columna está a punto de eliminarse, pero otra fila hace referencia a esta. |
|
No se encontró el registro correspondiente en una tabla externa. |
|
Los datos son mayores que el valor máximo permitido. |
|
Los datos son menores que el valor mínimo permitido. |
|
Los datos no son miembros de los valores permitidos en el conjunto. |
|
Se proporcionó una cadena de versión no válida. |
|
El caso no era válido. El caso debe estar en mayúsculas o en minúsculas. |
|
Se proporcionó un GUID no válido. |
|
Se proporcionó un nombre de archivo comodín no válido o el uso de caracteres comodín no era válido. |
|
Se proporcionó un identificador no válido. |
|
Se proporcionaron identificadores de idioma no válidos. |
|
Se proporcionó un nombre de archivo no válido. |
|
Se proporcionó una ruta de acceso no válida. |
|
Se proporcionó una instrucción condicional no válida. |
|
Se proporcionó una cadena de formato no válida. |
|
Se proporcionó una cadena de plantilla no válida. |
|
Se proporcionó una cadena no válida en la columna DefaultDir de la tabla Directory de |
|
Se proporcionó una cadena de ruta de acceso del Registro no válida. |
|
Se proporcionó una cadena no válida en la columna CustomSource de la tabla CustomAction. |
|
Se proporcionó una cadena de propiedad no válida. |
|
Falta una referencia a una columna _Validation tabla. |
|
La columna de categoría de la tabla _Validation para la columna no es válida. |
|
Se proporcionó un nombre de gabinete no válido. |
|
La tabla de la columna Keytable de la tabla _Validation no se encontró ni cargó. |
|
El valor de la columna MaxValue de la tabla _Validation es menor que el valor de la columna MinValue. |
|
Se proporcionó un nombre de destino de acceso directo no válido. |
|
La cadena es demasiado larga para la longitud especificada por la definición de columna. |
|
Se proporcionó un atributo de localización no válido. (Las claves principales no se pueden localizar). |
Tenga en cuenta que, en situaciones de memoria baja, esta función puede generar una excepción STATUS_NO_MEMORY.
Observaciones
Solo debe llamar a la función MsiViewGetError cuando msiViewModify devuelve ERROR_INVALID_DATA, lo que indica que los datos no son válidos. Los errores solo se registran para MSIMODIFY_VALIDATE, MSIMODIFY_VALIDATE_NEW y MSIMODIFY_VALIDATEFIELD.
Si se devuelve ERROR_MORE_DATA, el parámetro que es un puntero proporciona el tamaño del búfer necesario para contener la cadena. Tras la operación correcta, proporciona el número de caracteres escritos en el búfer de cadenas. Por lo tanto, puede obtener el tamaño necesario del búfer pasando un búfer pequeño (un carácter mínimo) y examinando el valor en pcchPathBuf cuando la función devuelve MSIDBERROR_MOREDATA. No intente determinar el tamaño del búfer pasando null como
Una vez que se devuelve MSIDBERROR_NOERROR, no quedan más errores de validación. El valor devuelto MSIDBERROR indica el tipo de error de validación que se produjo para el valor ubicado en la columna identificada por el szColumnNameBuffer.
Nota
El encabezado msiquery.h define MsiViewGetError como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer en Windows Server 2003 o Windows XP |
de la plataforma de destino de |
Windows |
encabezado de |
msiquery.h |
biblioteca de |
Msi.lib |
DLL de |
Msi.dll |