みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも参考に拝見しております。
ver.8です。
1,2,3,4・・・とシリアルが10000レコード程度ふってあります。
それぞれ日付が入っているレコードで、日付順にソートし、ふっています。
1 4月3日
2 4月4日
3 6月15日
4 7月9日
5 10月10日
後日、レコードの追加で日付が増えます。
シリアルをふりなおす必要がでてきます。
1 4月3日
2 4月4日
3 6月15日
4 7月9日
8月20日 ←これが追加される
5 10月10日
↓ こうしたいんですが。
1 4月3日
2 4月4日
3 6月15日
4 7月9日
5 8月20日
6 10月10日
いままでは対象レコードすべてソートして全置換でふりなおしていました。
レコード数が多いとやはり全置換に時間がかかります。
例えば、9000以前は変更がなく9001以降で変更が生じる場合、
その部分だけふりなおせばその分時間は短くなります。
それは考えればわかるのですが、、、。
そのやり方がわかりません。
今、行き詰っているのは、
ふりなおしを開始するレコード番号がわからない です。
それがわかれば、その一つ前のレコードのシリアルを見て、
その次のシリアル値からふりなおしができるかと思うのですが。
それともこのような場合は全置換ではなく、自己リレーションで
カウントして取得するのが通常のやり方なのでしょうか?
よろしくお願いいたします。
Offline
そんなにころころ変わるシリアルにどんな意味がわからないけど
ソートににかかる時間は気にならないのなら
新しく追加したレコードをアクティブにして全レコード表示して
ソート
前のレコードに移動
変数を設定 $s 値 シリアル値
Loop
次のレコードに移動 最後で終了
フィールド設定 シリアル $s+1
変数を設定 $s シリアル
End Loop
などでも行けそう。
Offline
日付<=日付
のリレーションで関連レコードへ移動すれば、ふり直すレコードだけになる。
初期値は、対象外のレコード数+1
そっ、それが簡単ですね。
Offline
一度だけの作業でしょうから、数分かかっても良いのでは。全レコードをソートして、全置換でも良いのでは。
ですが、そのようなシリアル番号、って意味が有るの?
Offline
みなさまありがとうございます。
おっしゃるように、シリアルがコロコロかわっては意味が無い事はわかっております。
おそらくDBの作り方自体に問題があるんだと思います。
運用をとめられないので一旦sorter様案を使い、作り直しも同時にすすめることにします。
ありがとうございました。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 507.8 KiB (Peak: 514.43 KiB) ]