Managed Data Provider (SQL Server Compact)
System.Data.SqlServerCe 名前空間を使用すると、マネージ アプリケーションから Microsoft SQL Server Compact 3.5 データベースにプログラムによってアクセスできます。System.Data.SqlServerCe には、SQL Server Compact 3.5 の機能を公開するための一連のクラスがあります。この名前空間のクラスの一覧については、「System.Data.SqlServerCe」を参照してください。
サポートされている機能
System.Data.SqlServerCe 名前空間には、次の機能があります。
SQL Server Compact 3.5 データ ソースへの一貫性のあるアクセス。
データを共有するコンシューマ アプリケーションでは、SQL Server Compact 3.5 データ プロバイダを使用して、SQL Server Compact 3.5 データ ソースに接続し、データの取得、操作、および更新を行うことができます。
データベースへの接続、コマンドの実行、結果の取得に必要なコンポーネント。
取得した結果は、直接処理することができます。また、ADO.NETDataSet オブジェクトや ResultSet オブジェクトに格納することによって、ユーザーに公開したり、さまざまなソースからのデータと結合したり、リモートの別の層に反映することもできます。
マネージ コードを記述するための開発者向け機能。
この機能は、ネイティブ COM の開発者向け ADO 機能と似ています。
パフォーマンスを最適化するためのインデックス機能。
SqlCeCommand.SetRange を使用すると、SqlCeDataReader.Read および SqlCeDataReader.Seek の呼び出しで参照できる行セットを制限できます。SqlCeDataReader.Seek では、現在の範囲内にあるキー値を直接位置付けすることができます。
SQL Server Compact 3.5 の Replication オブジェクトおよびリモート データ アクセス (RDA) オブジェクトと対話するためのインターフェイス。SqlCeReplication クラスと SqlCeRemoteDataAccess クラスによって提供されます。
SqlCeEngine クラスのメソッド。このクラスのメソッドを使用すると、データベースの作成や最適化ができます。
データベースの暗号化とパスワード保護。
プロバイダーの制限事項
SQL Server Compact 3.5 のデータ プロバイダには、以下の制限事項があります。
バッチ クエリはサポートされていません。クエリは 1 つの SQL ステートメントで実行する必要があります。以下は、有効なステートメントの例です。
SELECT * FROM Customers
以下は、無効なステートメントの例です。
SELECT * FROM Customers; SELECT * FROM Customers2
データセットの更新は、SqlCeDataAdapter で行う必要があります。Visual Studio プロジェクトのコードを使用している場合は、この制限事項に従うように SQL ステートメントを変更する必要があります。
入れ子になったトランザクションはサポートされませんが、並列トランザクションはサポートされています。
現在の SQL Server Compact 3.5 は、Web サイトに使用するデータベースとして最適化されていません。既定では、ASP.NET 接続アプリケーションからの接続は、SQL Server Compact 3.5 内でブロックされます。SQL Server Compact 3.5 は、アプリケーション内で組み込み型データベースとして使用するために最適化されています。SQL Server Compact 3.5 を Web サイト用のデータベースとして使用するには、複数ユーザーやデータの同時更新をサポートする必要があります。これにより、パフォーマンスに問題が発生する可能性があります。このため、これらの利用方法はサポートされていません。SQL Server 2005 Express Edition 以降のバージョンなど、SQL Server の他のエディションは Web サイトのデータベースとして最適化されています。ASP.NET を使用して SQL Server Compact 3.5 データベースを作成し、同期するアプリケーションのシナリオでは、SQL Server Compact 3.5 を ASP.NET と共に使用できます。ASP.NET で動作するように SQL Server Compact 3.5 の既定の動作を変更するには、次のコードを使用してください。
AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true)