Condividi tramite


Conversioni corrette da ANSI a Unicode

Se l'istanza di SQL Server con cui viene stabilita una connessione contiene dati ANSI, i dati vengono convertiti in Unicode prima dell'archiviazione nel database di SQL Server Compact 3.5. A seconda delle tabelle codici del computer che esegue SQL Server e del computer che esegue IIS, possono verificarsi errori di conversione. Le informazioni riportate di seguito consentono di garantire una conversione corretta dei dati.

Conversioni da ANSI a Unicode in Agente server di SQL Server Compact 3.5

Agente server di SQL Server Compact 3.5, installato sul computer che esegue Microsoft Internet Information Services (IIS) esegue la conversione dei dati di ANSI in SQL Server Unicode e viceversa per il database di SQL Server Compact 3.5. Per garantire una conversione corretta, l'agente server di SQL Server Compact 3.5 determina la tabella codici in cui sono archiviati i dati ANSI prima di eseguire le conversioni da ANSI a Unicode. Viene considerato quanto segue:

  • Se non sono disponibili altre impostazioni, viene utilizzata la tabella codici ANSI del computer che esegue IIS.
  • Se si utilizza un'istanza di SQL Server 2005 o una versione successiva, l'agente server di SQL Server Compact 3.5 utilizza la tabella codici del computer su cui è in esecuzione SQL Server. Quando ogni istanza di SQL Server è configurata per la corretta identificazione dei dati ANSI archiviati, per ogni connessione viene automaticamente selezionata la conversione corretta.
  • Se la conversione non offre il valore corretto per i dati archiviati, è possibile sostituire la tabella codici impostando una chiave del Registro di sistema su una tabella codici specifica.

Creazione di una chiave del Registro di sistema per la sostituzione della tabella codici

La procedura seguente consente di creare una chiave del Registro di sistema in grado di sostituire la tabella codici.

Avviso

La modifica errata del Registro di sistema può causare gravi danni al sistema. Prima di apportare modifiche al Registro di sistema, è consigliabile eseguire il backup dei dati importanti sul computer.

  1. Se non esiste, creare la chiave del Registro di sistema seguente:
    HKLM\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5\Transport
  2. Nella chiave HKLM\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5\Transport creare un valore di chiave DWORD. Il nome del valore di chiave deve iniziare con il percorso locale associato alla directory virtuale di IIS per SQL Server Compact 3.5. Ad esempio, se Sqlcesa35.dll si trova nella cartella C:\Inetpub\Sqlce\, è necessario denominare il valore del Registro di sistema C:\Inetpub\Sqlce\OVERRIDE_SERVER_CP. Il valore di dati della chiave DWORD deve essere un valore della tabella codici. Il valore di chiave del Registro di sistema riportato di seguito, ad esempio, corrisponde alla tabella codici per la lingua inglese:
    Chiave: HKLM\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5\TransportValue: C:\Inetpub\Sqlce\OVERRIDE_SERVER_CP 1252
  3. Dopo la creazione della voce del Registro di sistema, è necessario riavviare IIS. Questa operazione è importante poiché Agente server di SQL Server Compact 3.5 legge la chiave del Registro di sistema solo in occasione del caricamento iniziale di Agente server di SQL Server Compact 3.5 da parte di IIS.