MsiOpenDatabaseA 함수(msiquery.h)
MsiOpenDatabase 함수는 데이터 액세스를 위한 데이터베이스 파일을 엽니다. 이 함수는 MsiCloseHandle사용하여 닫아야 하는 핸들을 반환합니다.
통사론
UINT MsiOpenDatabaseA(
[in] LPCSTR szDatabasePath,
[in] LPCSTR szPersist,
[out] MSIHANDLE *phDatabase
);
매개 변수
[in] szDatabasePath
데이터베이스 파일의 전체 경로 또는 상대 경로를 지정합니다.
[in] szPersist
파일 또는 지속성 모드의 전체 경로를 받습니다. szPersist 매개 변수를 사용하여 영구 출력을 새 파일로 보내거나 다음 미리 정의된 지속성 모드 중 하나를 지정할 수 있습니다.
[out] phDatabase
반환된 데이터베이스 핸들의 위치에 대한 포인터입니다.
반환 값
MsiOpenDatabase 함수는 다음 값을 반환합니다.
발언
데이터베이스를 변경하고 저장하려면 먼저 트랜잭션(MSIDBOPEN_TRANSACT), 만들기(MSIDBOPEN_CREATE 또는 MSIDBOPEN_CREATEDIRECT) 또는 직접(MSIDBOPEN_DIRECT) 모드에서 데이터베이스를 엽니다. 변경한 후 데이터베이스 핸들을 닫기 전에 항상 MsiDatabaseCommit 호출합니다. MsiDatabaseCommit 모든 버퍼를 플러시합니다.
데이터베이스의 핸들을 닫기 전에 항상 직접 모드(MSIDBOPEN_DIRECT 또는 MSIDBOPEN_CREATEDIRECT)에서 열린 데이터베이스에서 MsiDatabaseCommit 호출합니다. 이렇게 하지 않으면 데이터베이스가 손상될 수 있습니다.
MsiOpenDatabase 데이터베이스 액세스를 시작하므로 실행 중인 설치와 함께 사용할 수 없습니다.
PMSIHANDLE 형식의 변수는 설치 관리자가 범위를 벗어날 때 PMSIHANDLE 개체를 닫기 때문에 사용하는 것이 좋습니다. 반면 msiCloseHandle
메모
msiquery.h 헤더는 MSiOpenDatabase를 유니코드 전처리기 상수의 정의에 따라 이 함수의 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 |
참고 항목
데이터베이스 및 패치 예제