Método View.Modify

El método Modify del objeto View modifica una fila de base de datos con un objeto Record modificado obtenido por el método Fetch.

Sintaxis

View.Modify(
  action,
  record
)

Parámetros

action

Acción obligatoria que se va a realizar en la fila de la base de datos. Esta acción es una de las que se muestran en la tabla siguiente.

Nombre de acción Significado
msiViewModifySeek
–1
Actualiza la información del registro proporcionado sin cambiar la posición en el conjunto de resultados y sin afectar a las operaciones de recuperación posteriores. A continuación, se puede usar el registro para la actualización, eliminación y actualización posteriores. Todas las columnas de clave principal de la tabla deben estar en la consulta y el registro debe tener al menos tantos campos como la consulta. No se puede usar Seek con consultas de varias tablas. Consulte los comentarios. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyRefresh
0
Actualiza la información del registro. Primero debe llamar al método Fetch con el mismo registro. En el caso de una fila eliminada, se produce un error. Funciona tanto con registros de lectura y escritura como de solo lectura.
msiViewModifyInsert
1
Inserta un registro. Se produce un error si existe una fila con las mismas claves principales. Se produce un error con una base de datos de solo lectura. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyUpdate
2
Actualiza un registro existente. Solo claves no principales. Primero debe llamar al método Fetch con el mismo registro. Se produce un error en el caso de un registro eliminado. Solo funciona con registros de lectura y escritura.
msiViewModifyAssign
3
Escribe los datos actuales en el cursor en una fila de tabla. Actualiza el registro si las claves principales coinciden con una fila existente e inserta uno si no coinciden. Se produce un error con una base de datos de solo lectura. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyReplace
4
Actualiza o elimina e inserta un registro en una tabla. Primero debe llamar al método Fetch con el mismo registro. Actualiza el registro si las claves principales no cambian. Elimina la fila antigua e inserta una nueva si han cambiado las claves principales. Se produce un error con una base de datos de solo lectura. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyMerge
5
Inserta o valida un registro en una tabla. Inserta si las claves principales no coinciden con ninguna fila y valida si hay una coincidencia. Se produce un error si el registro no coincide con los datos de la tabla. Se produce un error si hay un registro con una clave duplicada que no es idéntica. Solo funciona con registros de lectura y escritura. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyDelete
6
Elimina una fila de la tabla. Primero debe llamar al método Fetch con el mismo registro. Se produce un error si se ha eliminado la fila. Solo funciona con registros de lectura y escritura. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyInsertTemporary
7
Inserta un registro temporal. La información no es persistente. Se produce un error si existe una fila con la misma clave principal. Solo funciona con registros de lectura y escritura. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyValidate
8
Valida un registro. No valida entre combinaciones. Primero debe llamar al método Fetch con el mismo registro. Obtiene los errores de validación con el método GetError. Funciona tanto con registros de lectura y escritura como de solo lectura. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyValidateNew
9
Valida un nuevo registro. No valida entre combinaciones. Comprueba si hay claves duplicadas. Obtiene los errores de validación llamando al método GetError. Requiere llamar al método MsiDatabase.OpenView con un valor modify. Funciona tanto con registros de lectura y escritura como de solo lectura. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyValidateField
10
Valida los campos de un registro recuperado o nuevo. Puede validar uno o varios campos de un registro incompleto. Obtiene los errores de validación llamando al método GetError. Funciona tanto con registros de lectura y escritura como de solo lectura. Este modo no se puede usar con una vista que contenga combinaciones.
msiViewModifyValidateDelete
11
Valida un registro que se eliminará más adelante. Primero debe llamar al método Fetch con el mismo registro. Se produce un error si otra fila hace referencia a las claves principales de esta fila. La validación no comprueba la existencia de las claves principales de esta fila en propiedades o cadenas. No comprueba si una columna es una clave externa para varias tablas. Obtiene los errores de validación llamando al método GetError. Funciona tanto con registros de lectura y escritura como de solo lectura. Este modo no se puede usar con una vista que contenga combinaciones.

 

record

Necesario. Objeto Record obtenido por el método Fetch con los datos de los campos modificados.

Valor devuelto

Este método no devuelve ningún valor.

Comentarios

Se debe llamar a este método después del método Execute.

Para ejecutar cualquier instrucción SQL, se debe crear una vista. Sin embargo, una vista que no crea un conjunto de resultados, como CREATE TABLE o INSERT INTO, no se puede usar con el método Modify para actualizar las tablas a través de la vista.

Los valores msiViewModifyValidate, msiViewModifyValidateNew, msiViewModifyValidateField y msiViewModifyValidateDelete del método Modify no realizan actualizaciones reales; garantizan que los datos del registro sean válidos. El uso de estas acciones requiere que la base de datos contenga una tabla _Validation.

No puede capturar un registro que contenga datos binarios de una base de datos y, a continuación, usar ese registro para insertar los datos en una base de datos completamente diferente. Para mover datos binarios de una base de datos a otra, debe exportar los datos a un archivo y, a continuación, importarlos en la nueva base de datos mediante el método SetStream del objeto Record. Esto garantiza que cada base de datos tenga su propia copia de los datos binarios.

Nota:

Las acciones personalizadas solo pueden agregar, modificar o quitar filas, columnas o tablas temporales de una base de datos. Las acciones personalizadas no pueden modificar los datos persistentes de una base de datos, como los datos que forman parte de la base de datos almacenada en el disco. Para obtener más información, consulte Acceso a la sesión del instalador actual desde dentro de una acción personalizada.

 

Si el método no funciona, puede obtener la información de error extendida mediante el método LastErrorRecord.

Requisitos

Requisito Value
Versión
Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer en Windows Server 2003 o Windows XP
Archivo DLL
Msi.dll
IID
IID_IView se define como 000C109C-0000-0000-C000-000000000046