View.Modify method

View 개체의 Modify 메서드는 Fetch 메서드에서 가져온 수정된 Record 개체를 사용하여 데이터베이스 행을 수정합니다.

구문

View.Modify(
  action,
  record
)

매개 변수

action

데이터베이스 행에서 수행해야 하는 필수 작업입니다. 이 작업은 다음 표에 나와 있는 작업 중 하나입니다.

작업 이름 의미
msiViewModifySeek
–1
결과 집합의 위치를 변경하지 않고 이후 페치 작업에 영향을 주지 않고 제공된 레코드의 정보를 새로 고칩니다. 그러면 후속 업데이트, 삭제 및 새로 고침에 레코드를 사용할 수 있게 됩니다. 테이블의 모든 기본 키 열은 쿼리에 있어야 하며 레코드에는 쿼리 수만큼의 필드가 있어야 합니다. 검색은 다중 테이블 쿼리와 함께 사용할 수 없습니다. 설명을 참조하세요. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyRefresh
0
해당 레코드에 포함된 정보를 새로 고칩니다. 먼저 동일한 레코드를 사용하여 Fetch 메서드를 호출해야 합니다. 삭제된 행에서는 실패합니다. 읽기-쓰기 및 읽기 전용 레코드 둘 다에서 작동합니다.
msiViewModifyInsert
1
레코드를 삽입합니다. 기본 키가 동일한 행이 있으면 실패합니다. 읽기 전용 데이터베이스에서는 실패합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyUpdate
2
기존 레코드를 업데이트합니다. 기본 키가 아닌 키만 대상이 됩니다. 먼저 동일한 레코드를 사용하여 Fetch 메서드를 호출해야 합니다. 삭제된 레코드에서는 실패합니다. 읽기-쓰기 레코드에서만 작동합니다.
msiViewModifyAssign
3
커서의 현재 데이터를 테이블 행에 씁니다. 기본 키가 기존 행과 일치하면 레코드를 업데이트하고 일치하지 않으면 삽입합니다. 읽기 전용 데이터베이스에서는 실패합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyReplace
4
레코드를 업데이트 또는 삭제하고 테이블에 삽입합니다. 먼저 동일한 레코드를 사용하여 Fetch 메서드를 호출해야 합니다. 기본 키가 변경되지 않은 경우 레코드를 업데이트합니다. 기본 키가 변경된 경우 이전 행을 삭제하고 새 행을 삽입합니다. 읽기 전용 데이터베이스에서는 실패합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyMerge
5
테이블에 레코드를 삽입하거나 유효성을 검사합니다. 기본 키가 다른 행과 일치하지 않는 경우 레코드를 삽입하고 일치하는 항목이 있는지 유효성을 검사합니다. 레코드가 테이블의 데이터와 일치하지 않으면 실패합니다. 중복 키가 있는 레코드가 동일하지 않은 경우 실패합니다. 읽기-쓰기 레코드에서만 작동합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyDelete
6
테이블에서 행을 제거합니다. 먼저 동일한 레코드를 사용하여 Fetch 메서드를 호출해야 합니다. 행이 삭제된 경우 실패합니다. 읽기-쓰기 레코드에서만 작동합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyInsertTemporary
7
임시 레코드를 삽입합니다. 정보가 영구적이지 않습니다. 기본 키가 동일한 행이 있으면 실패합니다. 읽기-쓰기 레코드에서만 작동합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyValidate
8
레코드의 유효성을 검사합니다. 조인 간 유효성을 검사하지 않습니다. 먼저 동일한 레코드를 사용하여 Fetch 메서드를 호출해야 합니다. GetError 메서드를 사용하여 유효성 검사 오류를 가져옵니다. 읽기-쓰기 및 읽기 전용 레코드에서 작동합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyValidateNew
9
새 레코드의 유효성을 검사합니다. 조인 간 유효성을 검사하지 않습니다. 중복 키를 확인합니다. GetError 메서드를 호출하여 유효성 검사 오류를 가져옵니다. 수정 값을 사용하여 MsiDatabase.OpenView 메서드를 호출해야 합니다. 읽기-쓰기 및 읽기 전용 레코드에서 작동합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyValidateField
10
페치된 레코드 또는 새 레코드 필드의 유효성을 검사합니다. 불완전한 레코드의 하나 이상의 필드의 유효성을 검사할 수 있습니다. GetError 메서드를 호출하여 유효성 검사 오류를 가져옵니다. 읽기-쓰기 및 읽기 전용 레코드에서 작동합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.
msiViewModifyValidateDelete
11
나중에 삭제될 레코드의 유효성을 검사합니다. 먼저 동일한 레코드를 사용하여 Fetch 메서드를 호출해야 합니다. 다른 행이 이 행의 기본 키를 참조하는 경우 실패합니다. 유효성 검사는 속성 또는 문자열에 이 행의 기본 키가 있는지 확인하지 않습니다. 열이 여러 테이블의 외래 키(foreign key)인지는 확인하지 않습니다. GetError 메서드를 호출하여 유효성 검사 오류를 가져옵니다. 읽기-쓰기 및 읽기 전용 레코드에서 작동합니다. 조인이 포함된 보기에는 이 모드를 사용할 수 없습니다.

 

record

필수 요소. Fetch 메서드에서 가져온 개체를 수정된 필드 데이터로 기록합니다.

반환 값

이 메서드는 값을 반환하지 않습니다.

설명

이 메서드는 Execute 메서드 다음에 호출해야 합니다.

SQL 문을 실행하려면 뷰를 만들어야 합니다. 그러나 CREATE TABLE 또는 INSERT INTO와 같은 결과 집합을 만들지 않는 뷰는 Modify 메서드와 함께 사용하여 뷰를 통해 테이블을 업데이트할 수 없습니다.

Modify 메서드의 msiViewModifyValidate, msiViewModifyValidateNew, msiViewModifyValidateField 및 msiViewModifyValidateDelete 값은 실제 업데이트를 수행하지 않습니다. 해당 값들은 레코드의 데이터가 유효한지 확인합니다. 해당 작업을 사용하려면 데이터베이스에 _Validation 테이블이 포함되어 있어야 합니다.

한 데이터베이스에서 이진 데이터가 포함된 레코드를 가져온 다음 해당 레코드를 사용하여 데이터를 완전히 다른 데이터베이스에 삽입할 수 없습니다. 이진 데이터를 한 데이터베이스에서 다른 데이터베이스로 이동하려면 데이터를 파일로 내보낸 다음 Record 개체의 SetStream 메서드를 사용하여 새 데이터베이스로 가져와야 합니다. 이렇게 하면 각 데이터베이스에 이진 데이터의 자체 복사본을 저장할 수 있습니다.

참고

사용자 지정 작업은 데이터베이스에서 임시 행, 열 또는 테이블을 추가, 수정 또는 제거만 수행할 수 있습니다. 사용자 지정 작업은 디스크에 저장된 데이터베이스의 일부인 데이터와 같은 데이터베이스의 영구 데이터를 수정할 수 없습니다. 자세한 내용은 사용자 지정 작업 내에서 현재 설치 관리자 세션 액세스를 참조하세요.

 

메서드가 실패하면 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_IView는 000C109C-0000-0000-C000-000000000046으로 정의됩니다.