Condividi tramite


convalida String-Pool

Windows Installer archivia tutte le stringhe di database in un singolo pool di stringhe condivise per ridurre le dimensioni del database e migliorare le prestazioni. L'unico mezzo per convalidare il pool di stringhe consiste nell'usare lo strumento MsiInfo disponibile in Windows Installer SDK.

La verifica del pool di stringhe è costituita da due controlli principali:

Test di stringa DBCS

I test di stringa DBCS analizzano ogni stringa nel database per due criteri: per i pacchetti con una tabella codici neutra contrassegnata, se un carattere è un carattere esteso (maggiore di 127), la stringa viene contrassegnata e viene visualizzato un messaggio che indica che la tabella codici del database non è valida perché questi caratteri richiedono il rendering coerente di una tabella codici specifica in tutti i sistemi.

Se nel database è presente una tabella codici, ogni stringa viene analizzata per individuare un indicatore DBCS non valido. Se una stringa non neutrale è stata contrassegnata in modo non corretto, il rendering dei caratteri non verrà eseguito correttamente. Questa operazione è in genere causata dalla forzatura della tabella codici a un determinato valore usando la tabella _ForceCodepage con stringhe non neutre già presenti nel database. Si noti che questo controllo richiede l'installazione della tabella codici del database nel sistema.

Se si verifica un problema nella tabella codici, l'utente potrebbe correggere l'errore usando la tabella _ForceCodepage per forzare la tabella codici del database al valore appropriato. Per altre informazioni, vedere Gestione della tabella codici.

Verifica conteggio riferimenti

Per verificare i conteggi dei riferimenti di tutte le stringhe, ogni tabella viene analizzata per i valori stringa, viene mantenuto un conteggio di ogni stringa distinta e il risultato viene confrontato con il conteggio dei riferimenti archiviati nel pool di stringhe di database.

Se si verifica un problema di conteggio dei riferimenti stringa, l'utente deve esportare immediatamente ogni tabella del database usando MsiDatabaseExport, creare un nuovo database e importare le tabelle nel nuovo database usando MsiDatabaseImport. Il nuovo database ha quindi lo stesso contenuto del database precedente, ma i conteggi dei riferimenti stringa sono corretti. L'aggiunta o l'eliminazione di dati da un database con un pool di stringhe danneggiato può aumentare il danneggiamento del database e la perdita di dati, pertanto l'esecuzione di questi passaggi è importante per evitare ulteriori perdite di dati.

Durante la ricompilazione dei database, ricordarsi di incorporare le risorse di archiviazione e i flussi necessari nel nuovo database (vedere _Streams Tabella e tabella _Storages) e tenere presente i problemi della tabella codici. Ricordarsi anche di impostare ognuna delle proprietà del flusso di informazioni di riepilogo necessarie.