Validación de grupo de cadenas

Windows Installer almacena todas las cadenas de base de datos en un único grupo de cadenas compartidas para reducir el tamaño de la base de datos y mejorar el rendimiento. El único medio para validar el grupo de cadenas es usar la herramienta MsiInfo que se encuentra en el SDK de Windows Installer.

La verificación del grupo de cadenas consta de dos comprobaciones principales:

Pruebas de cadenas de DBCS

La cadena de DBCS comprueba cada cadena de la base de datos para ver dos criterios: en el caso de los paquetes con una página de códigos neutral marcada, si algún carácter es un carácter extendido (mayor que 127), la cadena se marca y se muestra un mensaje que indica que la página de códigos de la base de datos no es válida, ya que estos caracteres requieren que una página de códigos específica se represente de forma coherente en todos los sistemas.

Si la base de datos tiene una página de códigos, cada cadena se examina para obtener un indicador DBCS no válido. Si una cadena no neutra se ha marcado incorrectamente, los caracteres no se representarán correctamente. (El motivo más habitual es que se fuerza un valor determinado para la página de códigos mediante la tabla _ForceCodepage cuando ya hay cadenas no neutrales en la base de datos). Tenga en cuenta que esta comprobación requiere que la página de códigos de la base de datos esté instalada en el sistema.

Si hay un problema en la página de códigos, el usuario puede corregir el error mediante la tabla _ForceCodepage para forzar la página de códigos de la base de datos al valor adecuado. Para más información, vea Manejo de páginas de códigos.

Verificación del recuento de referencias

Para verificar los recuentos de referencia de todas las cadenas, cada tabla se examina para ver los valores de cadena, se guarda un recuento de cada cadena particular y el resultado se compara con el recuento de referencias almacenado en el grupo de cadenas de la base de datos.

Si hay un problema con el recuento de referencias de cadena, el usuario debe exportar inmediatamente cada tabla de la base de datos mediante MsiDatabaseExport, crear una nueva base de datos e importar las tablas en la nueva base de datos mediante MsiDatabaseImport. Así, la nueva base de datos tendrá el mismo contenido que la base de datos anterior, pero los recuentos de referencias de cadena serán los correctos. Agregar o eliminar datos de una base de datos con un grupo de cadenas dañado puede aumentar los daños en la base de datos y que estos se pierdan, por lo que realizar estos pasos rápidamente es importante para evitar la pérdida de datos adicional.

Al volver a generar bases de datos, recuerde insertar los almacenamientos y flujos necesarios en la nueva base de datos (consulte _Streams Table y _Storages Table) y tenga en cuenta los problemas de la página de códigos. Recuerde también establecer cada una de las propiedades necesarias de Flujo de información de resumen.