Aracılığıyla paylaş


String-Pool Doğrulama

Windows Installer, veritabanının boyutunu küçültmek ve performansı geliştirmek için tüm veritabanı dizelerini tek bir paylaşılan dize havuzunda depolar. Dize havuzunu doğrulamanın tek aracı, Windows Installer SDK'sında bulunan MsiInfo aracını kullanmaktır.

Dize havuzu doğrulaması iki ana denetimden oluşur:

DBCS Dize Testleri

DBCS dize testleri veritabanındaki her dizeyi iki ölçüt için tarar: Bağımsız kod sayfası işaretli paketler için, herhangi bir karakter genişletilmiş bir karakterse (127'den büyük) dize bayraklı olur ve bu karakterlerin tüm sistemlerde tutarlı bir şekilde işlenmesini gerektirdiğinden veritabanının kod sayfasının geçersiz olduğunu belirten bir ileti görüntülenir.

Veritabanında bir kod sayfası varsa, her dize geçersiz bir DBCS göstergesi için taranır. Nötr olmayan bir dize yanlış işaretlendiyse, karakterler doğru şekilde işlenmez. (Bunun nedeni genellikle kod sayfasını veritabanında zaten nötr olmayan dizelere sahip _ForceCodepage tablosunu kullanarak belirli bir değere zorlamaktır.) Bu denetimin, veritabanının kod sayfasının sisteme yüklenmesini gerektirdiğini unutmayın.

Bir kod sayfası sorunu varsa, kullanıcı veritabanının kod sayfasını uygun değere zorlamak için _ForceCodepage tablosunu kullanarak hatayı düzeltebilir. Daha fazla bilgi için bkz. Kod Sayfası İşleme.

Başvuru Sayısı Doğrulaması

Tüm dizelerin başvuru sayılarını doğrulamak için, her tablo dize değerleri için taranır, her ayrı dizenin sayısı tutulur ve sonuç veritabanı dize havuzundaki depolanan başvuru sayısıyla karşılaştırılır.

Dize başvuru sayısı sorunu varsa, kullanıcı MsiDatabaseExportkullanarak veritabanının her tablosunu hemen dışarı aktarmalı, yeni bir veritabanı oluşturmalı ve MsiDatabaseImportkullanarak tabloları yeni veritabanına aktarmalıdır. Yeni veritabanı daha sonra eski veritabanıyla aynı içeriğe sahiptir, ancak dize başvuru sayıları doğrudur. Bozuk dize havuzuna sahip bir veritabanından veri eklemek veya silmek, veritabanının bozulmasını ve veri kaybını artırabilir, bu nedenle bu adımları hızla uygulamak daha fazla veri kaybını önlemek için önemlidir.

Veritabanlarını yeniden oluştururken, gerekli depolama ve akışları yeni veritabanına eklemeyi unutmayın (bkz. _Streams Tablo ve _Storages Tablo) ve kod sayfası sorunlarına dikkat edin. Ayrıca, gerekli Özet Bilgi Akışı özelliklerinin her birini ayarlamayı unutmayın.