DataSnap クライアント アプリが DataSnap サーバーのリモート データ モジュールに接続してTDataSetProvider
+を使用するTClientDataSet
と、クライアント アプリのローカルに db テーブル (またはビュー) がキャッシュされます。ユーザーは、TClientDataSet 内のデータをローカルでApplyUpdates(0)
変更し、その変更をサーバーと同期できます。これはすべて理にかなっています。
SQL Server 2008 データベースを使用すると、主キーはフィールドidentity
またはGUID
フィールドのいずれかになります。local に新しいレコードを追加している間、ユーザーがオフラインになると仮定すると、ユーザーが新しいレコードを作成するときに、 localおよびは主キー フィールドの割り当てをTClientDataSet
どのように処理するのでしょうか? ローカルで作成されたレコードはマスター/詳細関係の一部である可能性があるため、新しい主キーをローカルで作成する必要があるのは当然のことです。ユーザーが「ApplyUpdates(0)」を実行すると、どのように解決されますか?TDataSetProvider
TClientDataSet
複数のユーザーがオフラインモードでレコードを作成する場合、それぞれがApplyUpdates(0)
?
フィールドはidentity
フィールドよりも優れていGUID
ますか、それともその逆ですか? なんで?