Compartir a través de


validación de String-Pool

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 comprobación del grupo de cadenas consta de dos comprobaciones principales:

Pruebas de cadena de DBCS

La cadena DBCS comprueba cada cadena de la base de datos por 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 porque estos caracteres requieren que se represente de forma coherente una página de códigos específica en todos los sistemas.

Si la base de datos tiene una página de códigos, cada cadena se examina para ver un indicador DBCS no válido. Si una cadena no neutra se ha marcado incorrectamente, los caracteres no se representarán correctamente. (Esto suele deberse a forzar la página de códigos a un valor determinado mediante la tabla _ForceCodepage con cadenas no neutrales ya 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 de página de códigos, el usuario puede corregir el error mediante el uso de la tabla _ForceCodepage para forzar la página de códigos de la base de datos al valor adecuado. Para obtener más información, vea control de páginas de códigos.

Comprobación del recuento de referencias

Para comprobar los recuentos de referencia de todas las cadenas, se examina cada tabla para los valores de cadena, se mantiene un recuento de cada cadena distinta y el resultado se compara con el recuento de referencias almacenadas en el grupo de cadenas de base de datos.

Si hay un problema de recuento de referencias de cadenas, 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. A continuación, la nueva base de datos tiene el mismo contenido que la base de datos anterior, pero los recuentos de referencias de cadena son correctos. Agregar o eliminar datos de una base de datos con un grupo de cadenas dañados puede aumentar los daños de la base de datos y la pérdida de datos, 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, no olvide insertar los almacenamientos y secuencias 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 Flujo de información de resumen.