次の方法で共有


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 データを正しく識別するように設定されているときは、接続ごとに適切な変換が自動的に選択されます。

  • 変換したときに、格納されているデータに対して示される値が間違っている場合は、レジストリ キーを特定のコード ページに設定することで、コード ページをオーバーライドできます。

コード ページをオーバーライドするレジストリ キーの作成

次の手順に、コード ページをオーバーライドするレジストリ キーを作成する方法を示します。

注意

レジストリを誤って編集すると、システムに重大な障害が発生する場合があります。レジストリを変更する前に、コンピュータ上の重要なデータはすべてバックアップしてください。

  1. レジストリ キーが存在しない場合は、次のレジストリ キーを作成します。

    HKLM\Software\Microsoft\Microsoft SQL Server Compact Edition\v3.5\Transport

  2. 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

  3. レジストリ エントリを作成したら、IIS を再起動します。SQL Server Compact 3.5 サーバー エージェントがレジストリ キーを読み取るのは、IIS が SQL Server Compact 3.5 サーバー エージェントを最初に読み込んだときのみであるため、再起動は必須です。