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