Метод View.Modify

Метод Modify объекта View изменяет строку базы данных с помощью измененного объекта Record , полученного методом Fetch .

Синтаксис

View.Modify(
  action,
  record
)

Параметры

action

Необходимое действие для выполнения в строке базы данных. Это действие является одним из действий, показанных в следующей таблице.

Имя действия Значение
msiViewModifySeek
–1
Обновляет сведения в предоставленной записи, не изменяя позицию в результирующем наборе и не влияя на последующие операции выборки. Затем запись может использоваться для последующих обновлений, удаления и обновления. Все первичные ключевые столбцы таблицы должны находиться в запросе, а запись должна содержать по крайней мере столько же полей, сколько в запросе. Поиск нельзя использовать с запросами с несколькимиtable. См. примечания. Этот режим нельзя использовать с представлением, содержащим соединения.
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 со значением modify. Работает с записями только для чтения и записи. Этот режим нельзя использовать с представлением, содержащим соединения.
msiViewModifyValidateField
10
Проверяет поля извлекаемой или новой записи. Может проверять одно или несколько полей неполной записи. Получает ошибки проверки, вызывая метод GetError . Работает с записями только для чтения и записи. Этот режим нельзя использовать с представлением, содержащим соединения.
msiViewModifyValidateDelete
11
Проверяет запись, которая будет удалена позже. Необходимо сначала вызвать метод Fetch с той же записью. Сбой, если другая строка ссылается на первичные ключи этой строки. Проверка не проверка существования первичных ключей этой строки в свойствах или строках. Не проверка, если столбец является внешним ключом для нескольких таблиц. Получение ошибок проверки путем вызова метода GetError . Работает с записями только для чтения и записи. Этот режим нельзя использовать с представлением, содержащим соединения.

 

record

Обязательный. Объект record , полученный методом Fetch с измененными данными поля.

Возвращаемое значение

Этот метод не возвращает значение.

Комментарии

Этот метод должен вызываться после метода Execute .

Для выполнения любой инструкции SQL необходимо создать представление. Однако представление, которое не создает результирующий набор, например CREATE TABLE или INSERT INTO, не может использоваться с методом Modify для обновления таблиц в представлении.

Значения msiViewModifyValidate, msiViewModifyValidateNew, msiViewModifyValidateField и msiViewModifyValidateDelete метода Modify не выполняют фактических обновлений; они гарантируют, что данные в записи являются допустимыми. Для использования этих действий требуется, чтобы база данных содержала _Validation таблицу .

Невозможно получить запись, содержащую двоичные данные, из одной базы данных, а затем использовать эту запись для вставки данных в совершенно другую базу данных. Чтобы переместить двоичные данные из одной базы данных в другую, необходимо экспортировать данные в файл, а затем импортировать их в новую базу данных с помощью метода SetStream объекта Record . Это гарантирует, что каждая база данных имеет собственную копию двоичных данных.

Примечание

Пользовательские действия могут добавлять, изменять или удалять только временные строки, столбцы или таблицы из базы данных. Пользовательские действия не могут изменять постоянные данные в базе данных, например данные, которые являются частью базы данных, хранящейся на диске. Дополнительные сведения см. в разделе Доступ к текущему сеансу установщика из пользовательского действия.

 

В случае сбоя метода можно получить расширенные сведения об ошибке с помощью метода LastErrorRecord .

Требования

Требование Значение
Версия
Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или Установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP
DLL
Msi.dll
IID
IID_IView определяется как 000C109C-0000-0000-C000-0000000000046