MsiViewGetErrorA 함수(msiquery.h)
MsiViewGetError 함수는 MsiViewModify 함수에서 발생한 오류를 반환합니다.
통사론
MSIDBERROR MsiViewGetErrorA(
[in] MSIHANDLE hView,
[out] LPSTR szColumnNameBuffer,
[in, out] LPDWORD pcchBuf
);
매개 변수
[in] hView
보기에 대한 핸들입니다.
[out] szColumnNameBuffer
null로 끝나는 열 이름을 받는 버퍼에 대한 포인터입니다. szColumnName대해 null(value=0)을 전달하여 버퍼 크기를 확인하지 마세요. 빈 문자열(예: "")을 전달하여 버퍼의 크기를 가져올 수 있습니다. 그런 다음, 함수는 MSIDBERROR_MOREDATA 반환하고 pcchBuf 종료 null 문자를 포함하지 않고 TCHAR에 필요한 버퍼 크기를 포함합니다. MSIDBERROR_NOERROR 반환 시 pcchBuf 종료 null 문자를 포함하지 않고 버퍼에 기록된 TCHAR 수를 포함합니다. 오류가 없는 경우 이 매개 변수는 빈 문자열입니다.
[in, out] pcchBuf
szColumnNameBuffer
반환 값
이 함수는 다음 값 중 하나를 반환합니다.
오류 코드 | 의미 |
---|---|
|
인수가 잘못되었습니다. |
|
버퍼가 너무 작아서 데이터를 받을 수 없었다. |
|
함수가 실패했습니다. |
|
함수가 오류 없이 성공적으로 완료되었습니다. |
|
새 레코드는 테이블에 있는 기존 레코드의 기본 키를 복제합니다. |
|
null 값은 허용되지 않습니다. 또는 열이 삭제되려고 하지만 다른 행에서 참조됩니다. |
|
외대 테이블의 해당 레코드를 찾을 수 없습니다. |
|
데이터가 허용되는 최대값보다 큰 경우 |
|
데이터가 허용되는 최소값보다 작습니다. |
|
데이터는 집합에 허용되는 값의 멤버가 아닙니다. |
|
잘못된 버전 문자열이 제공되었습니다. |
|
이 경우 유효하지 않습니다. 대/소문자는 모두 대문자이거나 모두 소문자여야 합니다. |
|
잘못된 GUID가 제공되었습니다. |
|
와일드카드 파일 이름이 잘못되었거나 와일드카드 사용이 잘못되었습니다. |
|
잘못된 식별자가 제공되었습니다. |
|
잘못된 언어 ID가 제공되었습니다. |
|
잘못된 파일 이름이 제공되었습니다. |
|
잘못된 경로가 제공되었습니다. |
|
잘못된 조건문이 제공되었습니다. |
|
잘못된 형식 문자열이 제공되었습니다. |
|
잘못된 템플릿 문자열이 제공되었습니다. |
|
Directory 테이블의 DefaultDir 열에 잘못된 문자열이 제공되었습니다. |
|
잘못된 레지스트리 경로 문자열이 제공되었습니다. |
|
CustomAction 테이블의 CustomSource 열에 잘못된 문자열이 제공되었습니다. |
|
잘못된 속성 문자열이 제공되었습니다. |
|
_Validation 테이블에 열에 대한 참조가 없습니다. |
|
열에 대한 _Validation 테이블의 범주 열이 잘못되었습니다. |
|
잘못된 캐비닛 이름이 제공되었습니다. |
|
_Validation 테이블의 Keytable 열에 있는 테이블을 찾거나 로드하지 못했습니다. |
|
_Validation 테이블의 MaxValue 열 값이 MinValue 열의 값보다 작습니다. |
|
잘못된 바로 가기 대상 이름이 제공되었습니다. |
|
문자열이 열 정의에 지정된 길이에 비해 너무 깁니다. |
|
잘못된 지역화 특성이 제공되었습니다. (기본 키는 지역화할 수 없습니다.) |
메모리가 부족한 상황에서 이 함수는 STATUS_NO_MEMORY 예외를 발생시키는 것을 알 수 있습니다.
발언
MsiViewModify 데이터가 유효하지 않음을 나타내는 ERROR_INVALID_DATA 반환하는 경우에만 MsiViewGetError 함수를 호출해야 합니다. 오류는 MSIMODIFY_VALIDATE, MSIMODIFY_VALIDATE_NEW 및 MSIMODIFY_VALIDATEFIELD 대해서만 기록됩니다.
ERROR_MORE_DATA 반환되는 경우 포인터인 매개 변수는 문자열을 보유하는 데 필요한 버퍼의 크기를 제공합니다. 성공하면 문자열 버퍼에 기록된 문자 수를 제공합니다. 따라서 작은 버퍼(최소 1자)를 전달하고 함수가 MSIDBERROR_MOREDATA 반환할 때 pcchPathBuf 값을 검사하여 버퍼의 필요한 크기를 가져올 수 있습니다. null을 szColumnNameBuffer 전달하거나 pcchBuf참조하는 DWORD 0의 버퍼 크기를 전달하여 버퍼 크기를 확인하지 마세요.
MSIDBERROR_NOERROR 반환되면 더 이상 유효성 검사 오류가 남아 있지 않습니다. MSIDBERROR 반환 값은 szColumnNameBuffer식별된 열에 있는 값에 대해 발생한 유효성 검사 오류 유형을 나타냅니다.
메모
msiquery.h 헤더는 MSiViewGetError를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Server 2012, Windows 8, Windows Server 2008 R2 또는 Windows 7의 Windows Installer 5.0. Windows Server 2008 또는 Windows Vista의 Windows Installer 4.0 또는 Windows Installer 4.5. Windows Server 2003 또는 Windows XP의 Windows Installer |
대상 플랫폼 | Windows |
헤더 | msiquery.h |
라이브러리 | Msi.lib |
DLL | Msi.dll |