Función MsiDatabaseGenerateTransformA (msiquery.h)
La funció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
Observaciones
Para generar un archivo de diferencia entre dos bases de datos, use la funció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