Installer.OpenDatabase 메서드

Installer 개체의 OpenDatabase 메서드는 기존 데이터베이스를 열거나 새 데이터베이스를 만들어 Database 개체를 반환합니다. Database 개체를 성공적으로 만들고 열 수 없는 경우 오류가 생성됩니다.

구문

Installer.OpenDatabase(
  name,
  openMode
)

매개 변수

name

데이터베이스의 경로 이름이 포함된 필수 문자열입니다. 빈 문자열이 제공되면 유지되지 않는 임시 데이터베이스가 만들어집니다.

openMode

다음 목록의 매개 변수 또는 커밋 시 쓸 새 출력 데이터베이스 파일의 경로 이름을 포함하는 문자열입니다.

매개 변수 의미
msiOpenDatabaseModeReadOnly
0
영구적인 변경 없이 읽기 전용 데이터베이스를 엽니다.
msiOpenDatabaseModeTransact
1
트랜잭션 모드에서 데이터베이스 읽기/쓰기를 엽니다.
msiOpenDatabaseModeDirect
2
트랜잭션 없이 데이터베이스 직접 읽기/쓰기를 엽니다.
msiOpenDatabaseModeCreate
3
새 데이터베이스, 거래 모드 읽기/쓰기를 만듭니다.
msiOpenDatabaseModeCreateDirect
4
새 데이터베이스, 직접 모드 읽기/쓰기를 만듭니다.
msiOpenDatabaseModeListScript
5
CreateAdvertiseScript 메서드에서 생성된 파일과 같은 보급 스크립트 파일을 보려면 데이터베이스를 엽니다.
msiOpenDatabaseModePatchFile
32
패치 파일을 나타내기 위해 이 플래그를 추가합니다.

 

반환 값

열린 기존 또는 새 설치 관리자 데이터베이스를 나타내는 Database 개체입니다.

설명

데이터베이스를 다른 데이터베이스의 출력으로 열면 출력 데이터베이스의 요약 정보 스트림은 실제로 원래 데이터베이스의 읽기 전용 미러이므로 변경할 수 없습니다. 또한 데이터베이스와 함께 유지되지 않습니다. 출력 데이터베이스에 대한 요약 정보를 만들거나 수정하려면 닫았다가 다시 열어야 합니다.

데이터베이스에 변경 내용을 적용하고 저장하려면 먼저 트랜잭션(msiOpenDatabaseModeTransact)에서 데이터베이스를 열고 (msiOpenDatabaseModeCreate 또는 msiOpenDatabaseModeCreateDirect) 또는 직접 (msiOpenDatabaseModeDirect) 모드를 만듭니다. 변경한 후에는 데이터베이스 핸들을 닫기 전에 항상 Commit 메서드를 호출합니다. Commit 메서드는 모든 버퍼를 플러시합니다.

데이터베이스를 닫기 전에 항상 직접 모드(msiOpenDatabaseModeDirect 또는 msiOpenDatabaseModeCreateDirect)에서 열린 데이터베이스에서 Commit 메서드를 호출합니다. 이렇게 하지 않으면 데이터베이스가 손상될 수 있습니다.

OpenDatabase 메서드는 데이터베이스 액세스를 시작하기 때문에 실행 중인 설치와 함께 사용할 수 없습니다.

메서드가 실패하면 LastErrorRecord 메서드를 사용하여 확장된 오류 정보를 가져올 수 있습니다.

요구 사항

요구 사항
버전
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
DLL
Msi.dll
IID
IID_IInstaller는 000C1090-0000-0000-C000-000000000046으로 정의됩니다.