10/26/2010 03:50:20
このドキュメントの最新バージョンは、Microsoft ダウンロード センターからダウンロードできます。
ドキュメントに関するお客様のご意見、ご感想をお待ちしております。ドキュメント作成チームでは、ドキュメントに関するすべての問題について確認および調査していますが、技術的な質問への回答は行っておりません。ドキュメント以外の技術的な問題のサポートについては、「SQL Server Compact のサポートについて」を参照してください。フィードバックは、可能であれば英語でお送りください。
目次
1.1 SQL Server Compact 3.5 SP2 の入手
1.2 SQL Server Compact 3.5 SP2 オンライン ブック
1.3 Microsoft Synchronization Services for ADO.NET
2.0 SQL Server Compact 3.5 SP2 でサポートされているオペレーティング システム
1.0 はじめに
Microsoft® SQL Server™ Compact 3.5 Service Pack 2 は、開発者が Windows デスクトップ コンピューターやモバイル デバイス向けに堅牢なアプリケーションを作成できる、コンパクトなインプロセス データベースです。
1.1 SQL Server Compact 3.5 SP2 の入手
SQL Server Compact 3.5 SP2 は、SQL Server 2008 R2 および Visual Studio 2010 と共にインストールされますが、以下の Web からダウンロードすることもできます。
SQL Server Compact 3.5 SP2 (32 ビットおよび 64 ビット リリース)。
Visual Studio 2010。Visual Studio 2010 では、64 ビット リリースの SQL Server Compact 3.5 SP2 もインストールされます。
SQL Server 2008 R2。SQL Server 2008 R2 では 32 ビット リリースの SQL Server Compact 3.5 SP2 のみがインストールされ、64 ビット リリースはインストールされません。64 ビット リリースは、SQL Server Compact 3.5 SP2 ダウンロードから入手できます。
SQL Server Compact 3.5 for Devices SP2。デバイス実行時 .cab ファイルを含む、SQL Server Compact 3.5 for Devices SP2 の Windows インストーラー ファイル (msi) は、Visual Studio 2010 ではインストールされません。
1.2 SQL Server Compact 3.5 SP2 オンライン ブック
SQL Server Compact 3.5 SP2 のオンライン ブックでは、Windows デスクトップ コンピューターおよび Windows Mobile デバイスでの SQL Server Compact 3.5 SP2 の開発、管理、および展開に関する詳しい情報を参照できます。SQL Server Compact 3.5 SP2 オンライン ブックは、Visual Studio 2010 ドキュメントおよび SQL Server 2008 R2 オンライン ブックと共にはインストールされず、Microsoft ダウンロード センターからの Web ダウンロードでのみ入手できます。
SQL Server Compact のオンライン ブックは、インストールした後、スタンドアロンのヘルプ コレクションとして [スタート] メニューから使用できるようになります。SQL Server 2008 R2 ドキュメントからこのコレクションにアクセスしたり、SQL Server 2008 R2 から F1 ヘルプにアクセスしたりするには、このコレクションを SQL Server 連結ヘルプ コレクションに追加する必要があります。コレクションの追加方法については、この後の「既知の問題」を参照してください。
1.3 Microsoft Synchronization Services for ADO.NET Version 1.0 SP1
Microsoft Synchronization Services for ADO.NET は、異種ソースのデータを、2 層、n 層、およびサービスベースのアーキテクチャを介して同期する機能を提供します。
このテクノロジの詳細については、製品ドキュメントを参照してください。Synchronization Services コンポーネントは、SQL Server Compact 3.5 SP2 ダウンロードから入手できます。
2.0 SQL Server Compact 3.5 SP2 でサポートされているオペレーティング システムとプラットフォーム
SQL Server Compact 3.5 SP2 は、以下のオペレーティング システムで使用できます。
Windows デスクトップ コンピューター
Microsoft Windows XP Professional SP3
Microsoft Windows XP Home Edition SP3
Microsoft Windows XP Media Center Edition 2004 SP3
Microsoft Windows XP Media Center Edition 2005
Microsoft Windows XP Tablet PC Edition SP3
Microsoft Windows XP Embedded SP3
Microsoft Windows XP Professional x64 SP3
Windows Embedded for Point of Service SP3
Microsoft Windows Server 2003, Standard Edition SP2
Microsoft Windows Server 2003, Enterprise Edition SP2
Microsoft Windows Server 2003, Datacenter Edition SP2
Microsoft Windows Server 2003 R2, Standard Edition
Microsoft Windows Server 2003 R2, Enterprise Edition
Microsoft Windows Server 2003 R2, Datacenter Edition
Microsoft Windows Server 2003 x64, Standard Edition
Microsoft Windows Server 2003 x64, Enterprise x64 Edition
Microsoft Windows Server 2003 x64, Datacenter Edition
Microsoft Windows Server 2003 R2 x64, Standard Edition
Microsoft Windows Server 2003 R2 x64, Enterprise Edition
Microsoft Windows Server 2003 R2 x64, Datacenter Edition
Windows Vista Home Basic SP2
Windows Vista Home Premium SP2
Windows Vista Business SP2
Windows Vista Enterprise SP2
Windows Vista Ultimate SP2
Windows Vista Starter Edition SP2
Windows Vista Home Basic x64 SP2
Windows Vista Home Premium x64 SP2
Windows Vista Business x64 SP2
Windows Vista Enterprise x64 SP2
Windows Vista Ultimate x64 SP2
Windows Server 2008 Standard Server SP2
Windows Server 2008 Standard Server SP2 (Hyper-V なし)
Windows Server 2008 Enterprise SP2
Windows Server 2008 Enterprise SP2 (Hyper-V なし)
Windows Server 2008 Data Center SP2
Windows Server 2008 Data Center SP2 (Hyper-V なし)
Windows Server 2008 Web Edition SP2
Windows Server 2008 Standard Server SP2 x64
Windows Server 2008 Standard Server SP2 x64 (Hyper-V なし)
Windows Server 2008 Enterprise SP2 x64
Windows Server 2008 Enterprise SP2 x64 (Hyper-V なし)
Windows Server 2008 Data Center SP2 x64
Windows Server 2008 Data Center SP2 x64 (Hyper-V なし)
Windows Server 2008 Web Edition SP2 x64
Windows 7 Starter
Windows 7 Starter x64
Windows 7 Home Premium
Windows 7 Home Premium x64
Windows 7 Professional
Windows 7 Professional x64
Windows 7 Ultimate
Windows 7 Ultimate x64
Windows Server 2008 R2 Foundation x64
Windows Server 2008 R2 Standard x64
Windows Server 2008 R2 Enterprise x64
Windows Server 2008 R2 Datacenter x64
Windows Web Server 2008 R2 x64
Windows Mobile デバイス
Windows CE 4.2
Windows CE 5.0
Windows CE 6.0
Windows Mobile 2003 for Pocket PC
Windows Mobile 5.0
Windows Mobile 6.0
Windows Mobile 6.5
3.0 既知の問題
3.1
SQL Server Compact 3.5 SP2 オンライン ブック (BOL) および Microsoft Synchronization Services for ADO.NET ドキュメントは、Microsoft ダウンロード センターからの Web ダウンロードでのみ入手でき、Visual Studio 2010 および SQL Server 2008 R2 には同梱されません。SQL Server 2008 R2 ドキュメントからこれらのコレクションにアクセスしたり、SQL Server 2008 R2 から F1 ヘルプにアクセスしたりするには、これらのコレクションを SQL Server 連結ヘルプ コレクションに追加する必要があります。そのためには、SQL Server Compact 3.5 SP2 オンライン ブックおよび Microsoft Synchronization Services for ADO.NET のドキュメントをダウンロードします。次に、SQL Server 連結ヘルプ コレクションと SQL Server 2008 のインスタンスをすべて閉じます。連結ヘルプ コレクションを再度開くと、SQL Server Compact 3.5 SP2 オンライン ブックと Microsoft Synchronization Services for ADO.NET オンライン ブックがアプリケーションの [目次]、[キーワード]、および [検索] から利用でき、コードやユーザー インターフェイスでの F1 ヘルプも機能するようになります。
3.2
SQL Server Compact 3.5 for Devices SP2 の Windows インストーラー ファイルは、Visual Studio 2010 と共にはインストールされません。このファイルは、Microsoft ダウンロード センターからの Web ダウンロードで入手できます。
3.3
SQL Server Compact 3.5 SP2 MSI を実行して、SQL Server Compact 3.5、SQL Server Compact 3.5 SP1、または SQL Server Compact 3.5 SP2 ベータ版から SQL Server Compact 3.5 SP2 にアップグレードできます。
Visual Studio 2010 の CTP 版やベータ版または SQL Server 2008 R2 をアンインストールしても、SQL Server Compact 3.5 SP2 ベータ版はアンインストールされません。Visual Studio 2010 のリリース版または SQL Server 2008 R2 をインストールする前に、次の手順で、SQL Server Compact 3.5 SP2 のプレリリース版を手動で削除する必要があります。
Visual Studio 2010 の CTP 版またはベータ版をアンインストールします。
Windows Vista、Windows 7、Windows Server 2008、または Windows Server 2008 R2 では、[スタート] ボタンをクリックし、[コントロール パネル] をクリックします。次に、[プログラムと機能] をダブルクリックします。SQL Server Compact 3.5 SP2 のプレリリース版および SQL Server Compact 3.5 SP2 サーバー ツールをすべてアンインストールします。
Windows XP および Windows Server 2003 では、[スタート] ボタンをクリックし、[コントロール パネル] をクリックします。次に、[プログラムの追加と削除] をダブルクリックします。SQL Server Compact 3.5 SP2 のプレリリース版および SQL Server Compact 3.5 SP2 サーバー ツールをすべてアンインストールします。
3.4
SQL Server Compact 3.5 SP2 では、SqlCeConnection クラスの Encrypt プロパティを使用しません。データベース ファイルの暗号化に、このプロパティを使用しないでください。
注意 |
---|
Encrypt プロパティは、今後のリリースでは廃止されます。SQL Server Compact 3.5 SP2 では、下位互換性を確保するためだけにこのプロパティが残されています。 |
SQL Server Compact 3.5 SP2 データベース ファイルの暗号化には、SqlCeConnection クラスの Encryption Mode プロパティを使用してください。Encryption Mode プロパティの使用方法の例を次に示します。
暗号化された SQL Server Compact 3.5 SP2 データベースを新たに作成する場合
C#:
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;"); engine.CreateDatabase(); |
Visual Basic:
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;") engine.CreateDatabase() |
SQL Server 2005 Compact Edition (Version 3.1) または SQL Server 2005 Mobile Edition (Version 3.0) データベースを、暗号化された SQL Server Compact 3.5 SP2 データベースにアップグレードする場合
C#:
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;"); engine.Upgrade ("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;"); |
Visual Basic:
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;") engine.Upgrade("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;") |
既存の SQL Server Compact 3.5 SP2 データベースの暗号化モードを変更する場合
C#:
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;"); engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=<enterStrongPasswordHere>;"); |
Visual Basic:
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;") engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=<enterStrongPasswordHere>;") |
暗号化されていない SQL Server Compact 3.5 SP2 データベースを暗号化する場合
C#:
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf"); engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;"); |
Visual Basic:
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;") |
engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")
3.5
Visual Studio 2005 または Visual Studio 2008 SP1 を Visual Studio 2010 にアップグレードしても、暗号化された SQL Server Compact データベースはアップグレードされず、ClickOnce アプリケーションは再パブリッシュする必要があります。
以前のバージョンの SQL Server Compact で作成されたデータベース ファイル (*.sdf) は、SQL Server Compact 3.5 SP2 と互換性がありません。Visual Studio 2005 または Visual Studio 2008 のプロジェクトを Visual Studio 2010 にアップグレードするときには、以前のバージョンの SQL Server Compact の暗号化されていないデータベース ファイルだけがアップグレードされます。暗号化されていたデータベース ファイルは、手動でアップグレードする必要があります。Visual Studio 2005 プロジェクトまたは Visual Studio 2008 プロジェクトで ClickOnce を使ってアプリケーションをパブリッシュしていた場合は、プロジェクトを Visual Studio 2010 でアップグレードしてから、アプリケーションを再パブリッシュする必要があります。
暗号化されていたデータベース ファイルを手動でアップグレードする手順は、次のとおりです。
[データ] をクリックします。
[新しいデータ ソースの追加] をクリックします。
[接続の追加] をクリックします。
以前のバージョンのデータベース ファイルが開いている場合は、メッセージが表示されます。[OK] をクリックすると、[SQL Server Compact 3.5 データベースへのアップグレード] ダイアログ ボックスが表示されます。
または、次の例のように SqlCeEngine.Upgrade API を使用すると、プログラムでアップグレードを実行することもできます。
C#:
SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;"); engine.Upgrade ("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;"); |
Visual Basic:
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;") |
engine.Upgrade("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")
3.6
ClickOnce を使ってアプリケーションをパブリッシュしていたプロジェクトは、Visual Studio 2010 でアップグレードしてから、アプリケーションを再パブリッシュする必要があります。Visual Studio 2010 で ClickOnce アプリケーションを再パブリッシュしようとすると、"ブートストラップに必要な、SQL Server 2005 Compact Edition の必須コンポーネントが見つからない" という内容の警告が表示される場合があります。この警告は、無視してください。
3.7
SqlDbType や DbType のようなパラメーターの SQL Server Compact 3.5 SP2 データ型は、明示的に設定する必要があります。
SqlDbType や DbType のようなパラメーターのデータ型が明示的に設定されていないと、例外がスローされます。この問題を解決するには、SqlDbType や DbType などのパラメーターのデータ型を明示的に設定してください。このことは、BLOB データ型 (image および ntext) の場合に、特に重要です。次にサンプル コードを示します。
C#:
SqlCeEngine engine = new SqlCeEngine(connString); engine.CreateDatabase(); engine.Dispose(); SqlCeConnection conn = new SqlCeConnection(connString); conn.Open(); SqlCeCommand cmd = conn.CreateCommand(); cmd.CommandText = "CREATE TABLE BlobTable(name nvarchar(128), blob ntext);"; cmd.ExecuteNonQuery(); cmd.CommandText = "INSERT INTO BlobTable(name, blob) VALUES (@name, @blob);"; SqlCeParameter paramName = cmd.Parameters.Add("name", SqlDbType.NVarChar, 128); SqlCeParameter paramBlob = cmd.Parameters.Add("blob", SqlDbType.NText); paramName.Value = "Name1"; paramBlob.Value = "Name1".PadLeft(4001); cmd.ExecuteNonQuery(); |
Visual Basic:
Dim engine As SqlCeEngine = New SqlCeEngine(connString) engine.CreateDatabase() engine.Dispose() Dim conn As SqlCeConnection = New SqlCeConnection(connString) conn.Open() Dim cmd As SqlCeCommand = conn.CreateCommand() cmd.CommandText = "CREATE TABLE BlobTable(name nvarchar(128), blob ntext);" cmd.ExecuteNonQuery() cmd.CommandText = "INSERT INTO BlobTable(name, blob) VALUES (@name, @blob);" Dim paramName As SqlCeParameter Dim paramBlob As SqlCeParameter paramName = cmd.Parameters.Add("name", SqlDbType.NVarChar, 128) paramBlob = cmd.Parameters.Add("blob", SqlDbType.NText) paramName.Value = "Name1" paramBlob.Value = "Name1".PadLeft(4001) cmd.ExecuteNonQuery() |
3.8
DbProviderFactory を使用して SQL Server Compact 3.5 SP2 プロバイダーを読み込む ClickOnce アプリケーションは、次の場合は機能しません。
SQL Server Compact 3.5 SP2 および .NET 2.0、3.0、または 3.5 をインストール済みのコンピューターで、ClickOnce アプリケーションで .NET FX 4 および SQL Server Compact 3.5 SP2 をインストールする場合。
SQL Server Compact 3.5 SP2 および .NET FX 4 をインストール済みのコンピューターで、ClickOnce アプリケーションで .NET FX 2.0、3.0、または 3.5 をインストールする場合。
このような場合、ClickOnce アプリケーションは機能しません。これは、SQL Server Compact は再インストールされず、SQL Server Compact のエントリは ClickOnce アプリケーションによってインストールされた .NET FX バージョンの machine.config ファイルに書き込まれないためです。SQL Server Compact のエントリはこの machine.config ファイル内にないため、DbProviderFactory メソッドを使用するアプリケーションは SQL Server Compact プロバイダーを読み込めず失敗します。
この問題は、SQL Server Compact が再インストールされるのは次のレジストリ キーが存在しない場合のみであるために発生します (それ以外の場合、SQL Server Compact が正しくインストール済みであると想定され、再インストールはスキップされます)。
"HKLM\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\GAC\System.Data.SqlServerCe.dll_<LOC>"
<LOC> は言語コードです (英語を表す ENU など)。
このレジストリ キーは、.NET FX 2.0、3.0、または 3.5 をインストール済みのコンピューターに、SQL Server Compact をインストールしたときに作成されます。ClickOnce アプリケーションをインストールすると .NET FX 4 がインストールされ、その後 SQL Server Compact のインストールが試行されます。SQL Server Compact のインストールを実行中にこのレジストリ キーが検出されると、SQL Server Compact の再インストールはスキップされます。したがって、.NET FX 4 をインストール済みのコンピューターでは SQL Server Compact は修復されず、必要なエントリが .NET FX 4 の machine.config ファイルに作成されません。この問題は、.NET FX 2.0、3.0、3.5、および .NET FX 4 でコンパイルされたアプリケーションがコンピューターにインストールされている場合にも発生します。
これを回避するには、[プログラムの追加と削除] から SQL Server Compact 3.5 SP2 のインストールを修復します。SQL Server Compact 3.5 SP2 のインストールを修復するには、[スタート] ボタンをクリックし、[コントロール パネル] をクリックします。次に、[プログラムと機能] をダブルクリックします。Microsoft SQL Server Compact 3.5 SP2 を選択して右クリックし、[修復] をクリックします。SQL Server Compact 3.5 SP2 の修復ダイアログ ボックスが表示されます。ダイアログ ボックスの手順に従って修復を完了します。
3.9
新しいデータベース ファイルを SQL Server Compact 3.5 SP2 で作成し、一方、このデータベース ファイルに対して、SQL Server Compact 3.5 SP1 ランタイムを使用する変更の追跡 (Synchronization Services for ADO.NET Version 1.0 SP1、Sync Framework Version 1.0、または Sync Framework Version 2.0) を有効にすると、SQL Server Compact 3.5 SP1 を SQL Server Compact 3.5 SP2 にアップグレードするときに問題が発生します。この場合、このデータベース ファイルの変更の追跡スキーマがアップグレードされず、追跡対象のテーブルに context 列が追加されません。
この問題の発生を防ぐには、SQL Server Compact 3.5 SP2 でデータベースを作成した場合は、変更の追跡も SQL Server Compact 3.5 SP2 で有効にします。
3.10
SQL Server Compact 3.5 SP2 クエリ ツールの Windows インストーラー (MSI) ファイルは、SQL Server 2008 と SQL Server 2008 R2 がサイドバイサイドでインストールされている場合に SQL Server 2008 をアンインストールすると、同時にアンインストールされます。同様に、SQL Server Compact 3.5 SP1 クエリ ツールの MSI は、SQL Server 2008 と SQL Server 2008 R2 がサイド バイ サイドでインストールされている場合に SQL Server 2008 R2 をアンインストールすると、同時にアンインストールされます。クエリ ツールの MSI がアンインストールされると、SQL Server Management Studio (SSMS) と SQL Server Integration Services (SSIS) は SQL Server Compact に接続できなくなります。
この問題を解決するには、SQL Server Compact 3.5 SP1 クエリ ツールまたは SQL Server Compact 3.5 SP2 クエリ ツールの SSCESqlWbTools <Language>.msi をインストールします。このファイルは、SQL Server 2008 または SQL Server 2008 R2 インストール メディアの Servers\Setup フォルダーにあります。
注意 |
---|
<Language> はクエリ ツールの MSI の言語を表すプレースホルダーです。たとえば、ENU は英語、JPN は日本語をそれぞれ表します。 |
4.0 その他の情報
ここでは、SQL Server Compact に関する情報を得る方法とフィードバックの送信方法について説明します。
4.1 SQL Server Compact に関する情報を得るには
詳細については、SQL Server Compact フォーラムおよび SQL Server Compact 3.5 チームのブログを参照してください。
4.2 SQL Server Compact に関するフィードバックを送るには
SQL Server Compact に関するご意見やバグの報告をお送りいただくには、以下の方法があります。
MSDN Product Feedback Web サイトで、SQL Server Compact の機能とユーザー インターフェイスに関する意見やバグの報告を送信する。
SQL Server Compact オンライン ブックのフィードバック機能を使用して、ドキュメントに関する意見および記載ミスの報告を送信する。