Partager via


validation String-Pool

Windows Installer stocke toutes les chaînes de base de données dans un seul pool de chaînes partagées pour réduire la taille de la base de données et améliorer les performances. Le seul moyen de valider le pool de chaînes consiste à utiliser l’outil MsiInfo trouvé dans le Kit de développement logiciel (SDK) Windows Installer.

La vérification du pool de chaînes se compose de deux vérifications principales :

Tests de chaîne DBCS

Les tests de chaîne DBCS analysent chaque chaîne de la base de données pour deux critères : pour les packages avec une page de codes neutre marquée, si un caractère est un caractère étendu (supérieur à 127), la chaîne est marquée par un indicateur et un message s’affiche indiquant que la page de codes de la base de données n’est pas valide, car ces caractères nécessitent un rendu cohérent d’une page de codes spécifique sur tous les systèmes.

Si la base de données a une page de codes, chaque chaîne est analysée pour obtenir un indicateur DBCS non valide. Si une chaîne non neutre a été marquée de manière incorrecte, les caractères ne s’affichent pas correctement. (Cela est le plus souvent dû au fait de forcer la page de codes à une valeur particulière à l’aide de la table _ForceCodepage avec des chaînes non neutres déjà dans la base de données.) Notez que cette vérification nécessite que la page de codes de la base de données soit installée sur le système.

En cas de problème de page de codes, l’utilisateur peut corriger l’erreur à l’aide de la table _ForceCodepage pour forcer la page de codes de la base de données à la valeur appropriée. Pour plus d’informations, consultez gestion des pages de codes.

Vérification du nombre de références

Pour vérifier le nombre de références de toutes les chaînes, chaque table est analysée pour les valeurs de chaîne, un nombre de chaque chaîne distincte est conservé et le résultat est comparé au nombre de références stocké dans le pool de chaînes de base de données.

S’il existe un problème de nombre de références de chaîne, l’utilisateur doit immédiatement exporter chaque table de la base de données à l’aide de MsiDatabaseExport, créer une base de données et importer les tables dans la nouvelle base de données à l’aide de MsiDatabaseImport. La nouvelle base de données a ensuite le même contenu que l’ancienne base de données, mais les nombres de références de chaîne sont corrects. L’ajout ou la suppression de données d’une base de données avec un pool de chaînes endommagés peut augmenter la corruption de la base de données et la perte de données. Il est donc important d’effectuer rapidement ces étapes pour éviter une perte de données supplémentaire.

Lors de la reconstruction des bases de données, n’oubliez pas d’incorporer les stockages et flux nécessaires dans la nouvelle base de données (consultez _Streams Table et _Storages Table) et tenez compte des problèmes de page de codes. N’oubliez pas également de définir chacune des propriétés de flux d’informations récapitulatives nécessaires.