全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3468
推到 Plurk!
推到 Facebook!

可能是BOF或EOF的值為true,或目前的資料己被刪除??

答題得分者是:kevin2004
jackkon
一般會員


發表:12
回覆:9
積分:4
註冊:2004-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-29 12:51:04 IP:61.219.xxx.xxx 訂閱
我的delphi5已做了修補d5adoupdate2.exe的動作
也可以正常的編譯及執行程式
但當我把執行檔copy到別台去執行時
還是會出現可能是BOF或EOF的值為true,或目前的資料己被刪除??的訊息
請教一下該怎麼解決??

那台電腦的環境是
WINDOWS 2000 SP4
MDAC是2.8版
連接Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production

kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-30 16:16:48 IP:61.219.xxx.xxx 訂閱
這與Delphi5-Update沒關係,因為在D7中也常發生這個問題。
通常是在要刪除某筆資料,而洽好這筆資料是這個表的唯一的一筆資料,而且通常是在有Master-Detail關係時要刪除Detail資料時會有此狀況。原因為何?不知。小弟在D5時某些搭配paradox資料庫的AP無此問題,後來換成pg等就有你講的情況發生。有追過一段時間,最後結論是什麼,已忘了。但實務上是以Code低空略過了。
你可以試試;
if AdoQuery1.eof and AdoQuery1.bof then
Msg('空檔');exit;

if AdoQuery1.recordcount=1 then
if AdoQuery1.bof or AdoQuery1.eof then
AdoQuery1.First ;
AdoQuery1.Delete

------
Kevin
編輯記錄
kevin2004 重新編輯於 2007-08-30 17:43:46, 註解 無‧
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-30 17:45:24 IP:61.219.xxx.xxx 訂閱
一個可能的原因:當Master.State改變時,可甭會造成Detail重新被讀取,所以AdoQuery1.bof會為True

------
Kevin
系統時間:2024-11-22 20:19:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!