循环读取表中记录 |
缺席
|
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
想通过一个TIMER,不停的显示表中的记录,并显示到界面上。但是循环方面碰到了问题。
[code delphi] procedure TForm2.Timer1Timer(Sender: TObject); var i:Integer; begin form1.Table1.First ; while not form1.Table1.Eof do begin DBText1.Caption :=Form1.Table1.FieldByName('empno').AsString ; DBMemo1.Text :=Form1.Table1.FieldByName('firstname').AsString ; Form1.Table1.Next; end; [/code] 不过这么写好像有点问题。
------
断断续续的学了几年,还是一个初学者,永远支持Delphi ! |
max5020
資深會員 發表:30 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
1. 設一個變數 bm: TBookMark;
[code delphi] procedure TForm2.Timer1Timer(sender: Tobject); begin if bm=nil then Form1.Table1.First else begin Form1.Table1.GoToBookMark(bm) Form1.Table1.Next; end; if Form1.Table1.Eof then bm:=nil else bm:= Form1.Table1.GetBookMark; DBText1.Caption:= DBMemo1.Text:= end; [/code] |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
你認為有問題, 是什麼問題? 可否提出來我們知道你的認為?
我認為, 程式上沒有大問題, 但思考上卻有嚴重的缺陷 1.timer 不斷循還, 依程式來看, 資料庫也應該是不斷成長, 你不斷在caption及memo變化內容, 事實上如果有100筆, 除非你練過速記, 否則如何可以看到前99筆是什麼 2.假設timer 每一秒反應一次, 你的程式是否能在一秒內把loop跑完, 這有待商榷, 當loop未跑完, timer 又再進入時, 十分容易造成死機, 陷入無止境迴圈 3.在while loop中, 一旦進入即會進入迴圈控制, 沒有跳出機會, 這很可怕! |
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |