有人可以告訴我爲什麼這隻在aTbl.Edit後一次有效。 如果我刪除了四行來編輯表格,它會迭代所有49條記錄。看起來Edit和Post會將文件遊標定位在文件的末尾,因爲我只有一條記錄發生了變化,並且退出了EOF。Table.Edit強制光標到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;
嗯.. @TLama你有什麼編輯? – user983145 2013-03-24 22:56:31
不客氣。 :-)我發佈了一個答案,以便其他人發現這個問題可以看到它。 (就代表事情而言,我只是根據@TLama發佈的解釋它的鏈接發佈了這個鏈接。現在我看,儘管如此,事實上,您已經接受了7個你已經收到答案的問題的7個答案(這是你提到的「綠色勾號」 - 你接受一個答案,通過點擊檢查把它變成綠色),所以我認爲你做得很好。) – 2013-03-25 01:59:05
好吧,@TLama,我只是不知道我可能會有什麼做錯了。 :)那麼,除了代碼格式化,這是非常**個人的,我已經做了近40年的我的方式。儘管如此,我不會因編輯而感到厭煩。現在Ken已經解釋瞭如何看看有時做了什麼,我可以從編輯中學習。 – user983145 2013-03-25 18:27:07