Função MsiViewGetErrorA (msiquery.h)
A função
Sintaxe
MSIDBERROR MsiViewGetErrorA(
[in] MSIHANDLE hView,
[out] LPSTR szColumnNameBuffer,
[in, out] LPDWORD pcchBuf
);
Parâmetros
[in] hView
Manipule para o modo de exibição.
[out] szColumnNameBuffer
Ponteiro para o buffer que recebe o nome da coluna terminada em nulo. Não tente determinar o tamanho do buffer passando um nulo (valor=0) para szColumnName. Você pode obter o tamanho do buffer passando uma cadeia de caracteres vazia (por exemplo, ""). Em seguida, a função retorna MSIDBERROR_MOREDATA e pcchBuf contém o tamanho do buffer necessário em TCHARs, não incluindo o caractere nulo de terminação. No retorno de MSIDBERROR_NOERROR, pcchBuf contém o número de TCHARs gravados no buffer, não incluindo o caractere nulo de terminação. Esse parâmetro será uma cadeia de caracteres vazia se não houver erros.
[in, out] pcchBuf
Ponteiro para a variável que especifica o tamanho, em TCHARs, do buffer apontado pela variável szColumnNameBuffer. Quando a função retorna MSIDBERROR_NOERROR, essa variável contém o tamanho dos dados copiados para szColumnNameBuffer, sem incluir o caractere nulo de terminação. Se szColumnNameBuffer não for grande o suficiente, a função retornará MSIDBERROR_MOREDATA e armazenará o tamanho necessário, não incluindo o caractere nulo de terminação, na variável apontada por pcchBuf.
Valor de retorno
Essa função retorna um dos valores a seguir.
Código de erro | Significado |
---|---|
|
Um argumento era inválido. |
|
O buffer era muito pequeno para receber dados. |
|
Falha na função. |
|
A função foi concluída com êxito sem erros. |
|
O novo registro duplica as chaves primárias do registro existente em uma tabela. |
|
Não há valores nulos permitidos; ou a coluna está prestes a ser excluída, mas é referenciada por outra linha. |
|
O registro correspondente em uma tabela estrangeira não foi encontrado. |
|
Os dados são maiores que o valor máximo permitido. |
|
Os dados são menores que o valor mínimo permitido. |
|
Os dados não são membros dos valores permitidos no conjunto. |
|
Uma cadeia de caracteres de versão inválida foi fornecida. |
|
O caso era inválido. O caso deve ser todo em letras maiúsculas ou minúsculas. |
|
Um GUID inválido foi fornecido. |
|
Um nome de arquivo curinga inválido foi fornecido ou o uso de curingas era inválido. |
|
Um identificador inválido foi fornecido. |
|
IDs de idioma inválidas foram fornecidas. |
|
Um nome de arquivo inválido foi fornecido. |
|
Um caminho inválido foi fornecido. |
|
Uma instrução condicional inválida foi fornecida. |
|
Uma cadeia de caracteres de formato inválida foi fornecida. |
|
Uma cadeia de caracteres de modelo inválida foi fornecida. |
|
Uma cadeia de caracteres inválida foi fornecida na coluna DefaultDir da tabela |
|
Uma cadeia de caracteres de caminho do Registro inválida foi fornecida. |
|
Uma cadeia de caracteres inválida foi fornecida na coluna CustomSource da tabela |
|
Uma cadeia de caracteres de propriedade inválida foi fornecida. |
|
A tabela _Validation está faltando uma referência a uma coluna. |
|
A coluna de categoria da tabela _Validation para a coluna é inválida. |
|
Um nome de gabinete inválido foi fornecido. |
|
A tabela na coluna Keytable da tabela _Validation não foi encontrada ou carregada. |
|
O valor na coluna MaxValue da tabela _Validation é menor que o valor na coluna MinValue. |
|
Um nome de destino de atalho inválido foi fornecido. |
|
A cadeia de caracteres é muito longa para o comprimento especificado pela definição da coluna. |
|
Um atributo de localização inválido foi fornecido. (As chaves primárias não podem ser localizadas.) |
Observe que, em situações de memória baixa, essa função pode gerar uma exceção STATUS_NO_MEMORY.
Observações
Você só deve chamar a função
Se ERROR_MORE_DATA for retornado, o parâmetro que é um ponteiro fornecerá o tamanho do buffer necessário para manter a cadeia de caracteres. Após o sucesso, ele fornece o número de caracteres gravados no buffer de cadeia de caracteres. Portanto, você pode obter o tamanho necessário do buffer passando um buffer pequeno (um caractere mínimo) e examinando o valor em pcchPathBuf quando a função retornar MSIDBERROR_MOREDATA. Não tente determinar o tamanho do buffer passando nulo como
Depois que MSIDBERROR_NOERROR for retornado, não haverá mais erros de validação. O valor retornado MSIDBERROR indica o tipo de erro de validação que ocorreu para o valor localizado na coluna identificada pelo szColumnNameBuffer.
Nota
O cabeçalho msiquery.h define MsiViewGetError como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Installer 5.0 no Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou Windows Vista. Windows Installer no Windows Server 2003 ou Windows XP |
da Plataforma de Destino |
Windows |
cabeçalho | msiquery.h |
biblioteca | Msi.lib |
de DLL |
Msi.dll |
Consulte também
Funções gerais de acesso ao banco de dados
passando nulo como o argumento do Windows Installer Functions