ANSI から Unicode への適切な変換の保証
接続先の SQL Server インスタンスに ANSI データが含まれている場合、そのデータは Unicode に変換された後で SQL Server Compact 3.5 データベースに格納されます。SQL Server を実行しているコンピュータのコード ページと、IIS を実行しているコンピュータのコード ページによっては、変換エラーが発生する場合があります。以下に示す情報を参考にして、データを正しく変換してください。
SQL Server Compact 3.5 サーバー エージェントでの ANSI から Unicode への変換
Microsoft インターネット インフォメーション サービス (IIS) を実行しているコンピュータにインストールされている SQL Server Compact 3.5 サーバー エージェントによって、SQL Server の ANSI データが SQL Server Compact 3.5 データベース向けに Unicode に変換されます。変換を正しく行うために、ANSI から Unicode への変換を実行する前に SQL Server Compact 3.5 サーバー エージェントによって ANSI データがどのコード ページで格納されているかが判別されます。次の情報が考慮されます。
他の設定が利用できない場合、IIS を実行しているコンピュータの ANSI コード ページが使用されます。
SQL Server 2005 以降のバージョンのインスタンスを使用している場合、SQL Server Compact 3.5 サーバー エージェントでは SQL Server を実行しているコンピュータのコード ページが使用されます。SQL Server の各インスタンスが、格納されている ANSI データを正しく識別するように設定されているときは、接続ごとに適切な変換が自動的に選択されます。
変換したときに、格納されているデータに対して示される値が間違っている場合は、レジストリ キーを特定のコード ページに設定することで、コード ページをオーバーライドできます。
コード ページをオーバーライドするレジストリ キーの作成
次の手順に、コード ページをオーバーライドするレジストリ キーを作成する方法を示します。
注意
レジストリを誤って編集すると、システムに重大な障害が発生する場合があります。レジストリを変更する前に、コンピュータ上の重要なデータはすべてバックアップしてください。
レジストリ キーが存在しない場合は、次のレジストリ キーを作成します。
HKLM\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5\Transport
HKLM\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5\Transport キーに、DWORD のキー値を作成します。キー値の名前は、SQL Server Compact 3.5 の IIS 仮想ディレクトリに対応したローカル パスで始める必要があります。たとえば、Sqlcesa35.dll が C:\Inetpub\Sqlce\ フォルダにある場合は、キーのレジストリ値には C:\Inetpub\Sqlce\OVERRIDE_SERVER_CP という名前を付ける必要があります。DWORD キーのデータ値はコード ページの値にします。たとえば、次のレジストリ キー値は英語のコード ページの値です。
キー : HKLM\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5\TransportValue: C:\Inetpub\Sqlce\OVERRIDE_SERVER_CP 1252
レジストリ エントリを作成したら、IIS を再起動します。SQL Server Compact 3.5 サーバー エージェントがレジストリ キーを読み取るのは、IIS が SQL Server Compact 3.5 サーバー エージェントを最初に読み込んだときのみであるため、再起動は必須です。