線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:900
推到 Plurk!
推到 Facebook!

Table 筆數限制大小,去除最舊的那一筆

答題得分者是:chih
demon1042001
一般會員


發表:14
回覆:19
積分:6
註冊:2002-06-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-26 19:08:32 IP:61.16.xxx.xxx 未訂閱
各位前輩.. 我有一個Log Table,但它會一直成長 可是我希望當Table 的筆數已到五萬筆時 就將最舊的那一筆刪除,加入最新一筆. 一直保持五萬筆 之前的我做法是 //先取出總筆數 Tmp.Close; Tmp.CommandText := 'select Count(*) TotalCount from ' TableName; Tmp.Open; if (Tmp.FieldByName('TotalCount').AsInteger <= Max_Recordcount) then begin Result := True; end else begin case Overwrite_Type of 0: begin // 最佳化成長 Command.CommandText := 'Delete ' TableName ' Where Log_Serial = (SELECT TOP 1 Log_Serial FROM ' TableName ')'; Command.Execute; Result := True; end; 1: begin //不成長 Result := False; end; end; end; 可是 SELECT TOP 1 不能適用在每個資料庫 不知各位先進,在限制大小都是如何做..(自認為自己的法方不好)
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-26 19:54:27 IP:61.217.xxx.xxx 未訂閱
改為這樣試看看
case Overwrite_Type of
0: begin // 最佳化成長
Command.CommandText := 'Delete '   TableName   ' Where Log_Serial = (SELECT MIN(Log_Serial) FROM '   TableName   ')';
Command.Execute;
TRY TRY SEE
系統時間:2024-06-28 17:32:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!