0

WindowsMo​​bileデバイスで実行するアプリケーションを構築しています。MicrosoftのSyncFrameworkを使用して、SQLCEデータベースをメインの企業データベースと同期しています。

問題は、同期されるフィールドをどのように制限できるかということです。問題のテーブルにはフィールドのスタックがありますが、モバイルデバイスに表示する必要があるのはそのうちのいくつかであり、レプリケーションは(サーバーからモバイルへの)一方向のみであるため、問題にはなりません。私はこの同様の質問を見ましたが、そこには多くの情報がありません。誰かがこれを達成する方法について私にもっとアドバイスを与えることができますか?それは非常に一般的な要件だと思います。

また、Sync Frameworkバージョン2.0を使用できるかどうか、または1.0に固執する必要があるかどうかを誰かが知っていますか。2.0はWindowsMo​​bileに対応していないように感じましたが、よくわかりません。

乾杯
マーク

4

1 に答える 1

2

舞台裏で生成されるT-SQLを変更して、テーブルのすべての列が含まれないようにすることができますが、ここにはいくつかの落とし穴があります。まず、ウィザードを使用して後で同期の選択を変更することはできません。大したことではありません。独自の部分クラスを作成して、テーブルのT-SQLで特定のメソッドだけをオーバーライドすると、少し軽減されます。

次に、含まれていない(それが単語かどうかわからない)列への変更も、デフォルトで変更の追跡が行ごとであるため、その行のダウンロードをトリガーする可能性があります。これは、Track_Columns_Updatedフラグを設定することで変更できます

ALTER TABLE Employee
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)

行数とデータのサイズ、および更新される頻度に応じて、サーバーのメインテーブルにトリガーを提供して、必要なデータのみを含む別のテーブルのレコードを更新し、同期する方が簡単な解決策であることがよくあります。それ。後でダウンロードするものを変更するのがはるかに簡単になります。シェイクスピア全集をダウンロードする場合、これは明らかに解決策ではありませんが、製品カタログの数千のレコードについては、完全に実行可能だと思います。

于 2010-08-11T08:27:21.047 に答える