Método View.Modify

O método Modify do objeto View modifica uma linha de banco de dados com um objeto Record modificado obtido pelo método Fetch.

Sintaxe

View.Modify(
  action,
  record
)

Parâmetros

action

Ação necessária a ser executada na linha de banco de dados. Essa ação é uma das mostradas na tabela a seguir.

Nome da ação Significado
msiViewModifySeek
–1
Atualiza as informações no registro fornecido sem alterar a posição no conjunto de resultados nem afetar as operações de busca seguintes. Em seguida, o registro pode ser usado para atualização, exclusão e atualização posteriores. Todas as colunas de chave primária da tabela precisam estar na consulta, e o registro precisa ter, pelo menos, o número de campos da consulta. A busca não pode ser usada com consultas de várias tabelas. Confira os comentários. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyRefresh
0
Atualiza as informações do registro. Primeiro precisa chamar o método Fetch com o mesmo registro. Gera uma falha em caso de linha excluída. Funciona com registros de leitura/gravação e somente leitura.
msiViewModifyInsert
1
Insere um registro. Gera uma falha caso haja uma linha com as mesmas chaves primárias. Gera uma falha em caso de banco de dados somente leitura. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyUpdate
2
Atualiza um registro existente. Somente chaves não primárias. Primeiro precisa chamar o método Fetch com o mesmo registro. Gera uma falha em caso de registro excluído. Funciona somente com registros de leitura/gravação.
msiViewModifyAssign
3
Grava os dados atuais no cursor em uma linha da tabela. Atualiza o registro caso as chaves primárias correspondam a uma linha existente e insere uma, caso elas não sejam correspondentes. Gera uma falha em caso de banco de dados somente leitura. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyReplace
4
Atualiza ou exclui e insere um registro em uma tabela. Primeiro precisa chamar o método Fetch com o mesmo registro. Atualiza o registro caso as chaves primárias estejam inalteradas. Exclui a linha antiga e insere uma nova caso as chaves primárias tenham sido alteradas. Gera uma falha em caso de banco de dados somente leitura. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyMerge
5
Insere ou valida um registro em uma tabela. Insere-o se as chaves primárias não correspondem a nenhuma linha e valida-o se há uma correspondência. Gera uma falha se o registro não corresponde aos dados na tabela. Gera uma falha caso haja um registro com uma chave duplicada que não seja idêntica. Funciona somente com registros de leitura/gravação. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyDelete
6
Remove uma linha da tabela. Primeiro precisa chamar o método Fetch com o mesmo registro. Gera uma falha caso a linha tenha sido excluída. Funciona somente com registros de leitura/gravação. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyInsertTemporary
7
Insere um registro temporário. As informações não são persistentes. Gera uma falha caso haja uma linha com a mesma chave primária. Funciona somente com registros de leitura/gravação. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyValidate
8
Valida um registro. Não faz a validação entre junções. Primeiro precisa chamar o método Fetch com o mesmo registro. Obtém os erros de validação com o método GetError. Funciona com registros somente leitura/gravação e somente leitura. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyValidateNew
9
Valida um novo registro. Não faz a validação entre junções. Verifica se há chaves duplicadas. Obtém os erros de validação chamando o método GetError. Exige uma chamada ao método MsiDatabase.OpenView com um valor de modificação. Funciona com registros somente leitura/gravação e somente leitura. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyValidateField
10
Valida os campos de um registro buscado ou novo. Pode validar um ou mais campos de um registro incompleto. Obtém os erros de validação chamando o método GetError. Funciona com registros somente leitura/gravação e somente leitura. Esse modo não pode ser usado com uma exibição que contém junções.
msiViewModifyValidateDelete
11
Valida um registro que será excluído posteriormente. Primeiro precisa chamar o método Fetch com o mesmo registro. Gera uma falha caso outra linha se refira às chaves primárias dessa linha. A validação não verifica a existência das chaves primárias dessa linha nas propriedades ou nas cadeias de caracteres. Não verifica se uma coluna é uma chave estrangeira em várias tabelas. Obtém os erros de validação chamando o método GetError. Funciona com registros somente leitura/gravação e somente leitura. Esse modo não pode ser usado com uma exibição que contém junções.

 

record

Obrigatórios. Objeto Record obtido pelo método Fetch com os dados de campo modificados.

Valor retornado

Esse método não retorna um valor.

Comentários

Esse método precisa ser chamado após o método Execute.

Para executar qualquer instrução SQL, uma exibição precisa ser criada. No entanto, uma exibição que não cria um conjunto de resultados, como CREATE TABLE ou INSERT INTO, não pode ser usada com o método Modify para atualizar tabelas por meio da exibição.

Os valores msiViewModifyValidate, msiViewModifyValidateNew, msiViewModifyValidateField e msiViewModifyValidateDelete do método Modify não executam atualizações reais. Eles garantem que os dados no registro sejam válidos. O uso dessas ações exige que o banco de dados contenha uma tabela _Validation.

Não é possível buscar um registro que contém dados binários de um banco de dados e, em seguida, usar esse registro para inserir os dados em um banco de dados completamente diferente. Para mover os dados binários de um banco de dados para outro, você deve exportar os dados para um arquivo e importá-los para o novo banco de dados usando o método SetStream do objeto Record. Isso garante que cada banco de dados tenha uma cópia própria dos dados binários.

Observação

As ações personalizadas só podem adicionar, modificar ou remover linhas, colunas ou tabelas temporárias de um banco de dados. As ações personalizadas não podem modificar dados persistentes em um banco de dados, como dados que fazem parte do banco de dados armazenado em disco. Para obter mais informações, confira Como acessar a sessão do instalador atual em uma ação personalizada.

 

Em caso de falha do método, obtenha informações sobre os erros estendidos usando o método LastErrorRecord.

Requisitos

Requisito Valor
Versão
Windows Installer 5.0 no Windows Server 2012, no Windows 8, no Windows Server 2008 R2 ou no Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou no Windows Vista. Windows Installer no Windows Server 2003 ou no Windows XP
DLL
Msi.dll
IID
O IID_IView é definido como 000C109C-0000-0000-C000-000000000046