誰かがこれがaTbl.Editの後に1回だけ機能する理由を教えてもらえますか?テーブルを編集するために4行を削除すると、49個のレコードすべてが繰り返されます。編集と投稿では、ファイルの最後にファイルカーソルが配置されるようです。これは、レコードが1つしか変更されておらず、EOFで終了するためです。
私はD5、Zeos-6、SQLite3を使用しています。編集前にAuto-incを取得し、その後にLocateを取得しようとしましたが、編集後に終了します。
あなたが提案できることは何でもありがとう、しかしこれは午後中ずっと私を狂わせてきました。私はそれが私がしたことの愚かなことだと思い続けていますが、私はそれを見つけることができません。:)
aTbl.First; // Test DB has 49 records
while not aTbl.EOF do
begin
for i := 0 to lbCt.Items.Count-1 do // Currently only two items in the list
begin // and only the second makes a match
aMatch := False; // which then forces the edit
CtStr := lbCt.Items[i]);
case InOut.ItemIndex of
0: aMatch := aTbl.FieldByName(fld_A).AsString = CtStr;
1: aMatch := aTbl.FieldByName(fld_B).AsString = CtStr;
2: aMatch := (aTbl.FieldByName(fld_A).AsString = CtStr) or
(aTbl.FieldByName(fld_B).AsString = CtStr);
3: aMatch := (aTbl.FieldByName(fld_A).AsString = CtStr) and
(aTbl.FieldByName(fld_B).AsString = CtStr);
end;
if aMatch then
begin
aTbl.Edit;
aTbl.FieldByName('Account').AsString := lbCt.Items[i];
aTbl.FieldByName('Folder').AsString := lbCt.Items[i];
aTbl.Post;
end;
end;
aTbl.Next;
end;