Tips

複製をセットアップする際にレコードをタッチしなければいけない理由

日付2010/11/11
ID76193 (英語原文参照)
バージョンv12
プラットフォームMac/Win

同期と複製のセットアップは, 比較的容易な手順です。プライマリーキーを定義し, 複製を有効にするだけで, 開始することができます。ただし, すでにレコードが登録されている既存のテーブルの場合, それだけではデータの転送が始まりません。見落とされそうなポイントですが, 既存のレコードが複製されるためには, それらのレコードをタッチする必要があります。これは, ストラクチャ定義の途中変更全般(フィールドダイプを変えた後, レコードをロードして再保存するまでは既存のデータは変わらない)に共通していえることです。

最初のSQLステートメントは, 既存のGroup_IDフィールドをこのテーブルのプライマリーキーに定義しています。

次のステートメントは, 複製を有効にするためのものです。しかし, ここで複製を実行しても, 何も起こりません。

最後のステートメントは, 既存の全レコードをタッチするためのもので, これによりデータの複製を司るもの(具体的にはスタンプ)が生成されます。

このことは, 複製の設定をリセットする際に役立ちます。たとえば, 次のようなコードで複製をリセットすることができます。次に開始スタンプ0から複製を実行すれば, すべてのレコードが転送の対象になります。

Begin SQL
   ALTER TABLE Groups DISABLE REPLICATE;
   ALTER TABLE Groups ENABLE REPLICATE;
   UPDATE Groups SET Group_ID = CONCAT(Group_ID,'');
End SQL

4DSyncHeaderおよび4DSyncDataファイルは, 絶対に削除しないでください。ファイルを削除することは複製のリセットにはなりません。それはむしろ複製の設定を破壊する行為です。