Tips

ロードできないレコードを削除する

日付2004/01/15
ID30925 (英語原文参照)
バージョン2003
プラットフォームMac & Win

ロードできない破損したデータが存在し、4D Toolsのデータファイル修復やタグによる修復でも問題が解決できないことがあるかもしれません。
レコードそのものが壊れているのはなく、レコードの中身に問題がある場合、4D Toolsは破損を検出できません。4D Toolsはレコードの定義を調べますが、中身までは調べないからです。
たとえば、BLOBフィールドの場合、BLOBのサイズを示すデータがBLOBの中にありますが、バイトスワップなどによってこの値が不正なものになってしまうと、4Dがレコードを読み込むために用意したメモリブロックにレコードが収まらないためにレコードが読み込めません。レコードが読み込めなければ、削除もできません。
レコードをロードせずに削除する方法もあるので、そのような場合は次のようにしてみて下さい。

そのレコードを読み込むコード、たとえばトリガなどが作動していないことを確認します。
そのテーブルのインデックスをすべて無効にします。
削除制御を無効にします。
トランザクション中でないことを確認します。
レコードをロードしないでセレクションを作ります。
たとえば、CREATE SELECTION FROM ARRAYを使用します。
DELETE SELECTIONで問題のレコードを削除します。