Compartir a través de


Función MsiDatabaseGenerateTransformA (msiquery.h)

La función MsiDatabaseGenerateTransform genera un archivo de transformación de diferencias entre dos bases de datos. Una transformación es una forma de registrar los cambios en una base de datos sin modificar la base de datos original. También puede usar MsiDatabaseGenerateTransform para probar si dos bases de datos son idénticas sin crear una transformación.

Sintaxis

UINT MsiDatabaseGenerateTransformA(
  [in] MSIHANDLE hDatabase,
  [in] MSIHANDLE hDatabaseReference,
  [in] LPCSTR    szTransformFile,
  [in] int       iReserved1,
  [in] int       iReserved2
);

Parámetros

[in] hDatabase

Identificador de la base de datos obtenida de MsiOpenDatabase que incluye los cambios.

[in] hDatabaseReference

Identificador de la base de datos obtenida de msiOpenDatabase que no incluye los cambios.

[in] szTransformFile

Cadena terminada en NULL que especifica el nombre del archivo de transformación que se va a generar. Este parámetro puede ser NULL. Si szTransformFile es NULL, puede usar msiDatabaseGenerateTransform para probar si dos bases de datos son idénticas sin crear una transformación. Si las bases de datos son idénticas, la función devuelve ERROR_NO_DATA. Si las bases de datos son diferentes, la función devuelve NOERROR.

[in] iReserved1

Se trata de un argumento reservado y debe establecerse en 0.

[in] iReserved2

Se trata de un argumento reservado y debe establecerse en 0.

Valor devuelto

La función MsiDatabaseGenerateTransform devuelve uno de los siguientes valores:

Observaciones

Para generar un archivo de diferencia entre dos bases de datos, use la función MsiDatabaseGenerateTransform. Una transformación contiene información sobre la inserción y eliminación de columnas y filas. Las marcas de validación se almacenan en el flujo de información de resumen del archivo de transformación.

Para las tablas que existen en ambas bases de datos, la única diferencia entre los dos esquemas permitidos es la adición de columnas al final de la tabla de referencia. No se pueden agregar columnas de clave principal a una tabla ni cambiar el orden o los nombres o definiciones de columna de las columnas existentes, tal como se define en la tabla base. En otras palabras, si ninguna tabla contiene datos y columnas se quita de la tabla de referencia, la tabla resultante es idéntica a la tabla base.

Dado que el delimitador de lista para transformaciones, orígenes y revisiones es un punto y coma, este carácter no debe usarse para nombres de archivo o rutas de acceso.

Esta función no genera un flujo de información de resumen. Use msiCreateTransformSummaryInfo para crear la secuencia para una transformación existente.

Si szTransformFile es null, puede probar si dos bases de datos son idénticas sin crear una transformación. Si las bases de datos son idénticas, se devuelve ERROR_NO_DATA, se devuelve NOERROR si se encuentran diferencias.

No se puede llamar a esta función desde acciones personalizadas. Una llamada a esta función desde una acción personalizada hace que se produzca un error en la función.

Si se produce un error en la función, puede obtener información de error extendida mediante MsiGetLastErrorRecord.

Nota

El encabezado msiquery.h define MsiDatabaseGenerateTransform como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido 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
de la plataforma de destino de Windows
encabezado de msiquery.h
biblioteca de Msi.lib
DLL de Msi.dll

Consulte también

funciones de administración de bases de datos de

de transformaciones de base de datos