次の方法で共有


マルチユーザー アクセスと RDA

Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) でのマルチユーザー アクセスは、リモート データ アクセス (RDA) の使用時も含め、いつでも利用できます。他のユーザーが同じ SQL Server Compact 3.5 データベースにアクセスしているときでも、プル操作またはプッシュ操作を続行できます。

プル操作の実行中は、特定のローカル テーブルが存在しない必要があります。また、サーバーからデータをプルする処理中に、テーブルが作成されます。そのため、プルされるテーブルには、プル操作が完了するまでアクセスできません。データがサーバーにプッシュされる際、プッシュの開始後にデータが変更された場合、次のプッシュ操作で、それらの変更がサーバーに送信されます。サーバーへの特定のプッシュの後で、サーバーからのデータを更新する必要がある場合は、プッシュ操作とプル操作の両方が完了するまで、アプリケーションではテーブルに変更を追加できません。これにより、テーブルが削除されても変更が失われないことが保証されます。

複数の接続を使用して SQL Server Compact 3.5 データベースにアクセスできることにより、開発者は単純なモデルで開発を行うことができます。SQL Server Compact 3.5 データベース エンジンでは、複数のアプリケーションからの同時要求、または単一のアプリケーションからの複数の接続要求を処理できるので、開発者がデータベース アクセスのスケジュールを設定する必要はありません。複数の接続が必要な場合は、SQL Server Compact 3.5 データベース エンジンにより、特定の操作に対し必要に応じてデータがロックされます。

注意

一部の 64 ビット プラットフォームの環境では、以前のバージョンの SQL Server Compact を使用したデータベース ファイルへの同時アクセスがサポートされません。64 ビット コンポーネントの詳細については、「64 ビット データベース アプリケーションの管理」を参照してください。

同期中の主キーの変更

RDA によって監視されるテーブルの場合、主キーに基づいて、更新、挿入、および削除が監視されます。主キー列に対するマルチユーザー アクセスが許可されているので、同期中に主キー列の値が変更されないことが重要です。

警告   主キー列の値を変更することはまれですが、主キーを変更したテーブルの同期中に変更が発生した場合、エラーが発生し、データが失われる可能性があります。

テーブル A で、主キーの値が 1 から 2 に変更されます。値 1 は、RDA によって使用される監視列に格納されています。したがってプッシュの発生時、SQL Server Compact 3.5 では、データを新しい値に更新するときにどの値を検索すればよいかが認識されています。

アプリケーションでプッシュ操作が開始され、検索値が 1 の SQL Server データベースへのアップロード メッセージで、新しい値 2 が送信されます。ただし、同期中に新しいデータ値が変更される場合、プッシュが完了していないので、監視列では検索値が 1 から 2 に変更されません。プッシュが成功している場合、この行の次のプッシュは必ず失敗します。サーバーで主キーの値が 1 から 2 に変更されたので、検索条件の値 1 は無効になります。

マルチユーザー アクセスの詳細については、「マルチユーザー アクセス」を参照してください。ロックの詳細については、「ロック (SQL Server Compact)」を参照してください。