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

請問 Lock file has grown too large 該如何處理?

尚未結案
hipo
一般會員


發表:5
回覆:4
積分:1
註冊:2003-04-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-07 17:22:43 IP:203.204.xxx.xxx 未訂閱
我剛用Delphi 想請問 Lock file has grown too large 該如何處理? 會與_QSQ1461.db 有關係嗎?
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-07 17:39:11 IP:218.16.xxx.xxx 未訂閱
關掉所有使用該數據庫的程式 在 數據庫 資料夾刪掉 PARADOX.LCK PDOXUSRS.LCK 若程式資料夾有 *.LCK 也可刪掉 _Q*.* 是暫存檔也可刪掉 這些檔案正常是會自動刪掉的,但若不正常停止程式或死機時便會留著及越來越大。
hipo
一般會員


發表:5
回覆:4
積分:1
註冊:2003-04-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-09 10:11:23 IP:203.204.xxx.xxx 未訂閱
謝謝Justmade的指教 我觀察程式執行真的會產生PARADOX.LCK,PDOXUSRS.LCK 及 _Q*.* 我的程式是用sql語法挑選資料,當挑選資料範圍是4月1日到4月5日時,或4月6日到4月10日,程式可正常結束, .LCK 也會自動消失,是正常執行 可是當我挑選資料範圍是4月1日到4月10日時,到4月8日即會出現訊息 "Lock file has grown too large" 程式就停住了,此時.LCK 在使用中也無法刪除,除非我把程式強制關掉, .LCK 即會消失 不知道還有什麼方法可以解決這個問題,因為我需要的是挑選4月1日到4月30日的資料, 謝謝!!
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-09 10:47:36 IP:218.16.xxx.xxx 未訂閱
你從4月1日到8日的筆數約有多少? 可否 Post 你的 SQL 出來看看 還有,你在 SQL Explorer 執行同一SQL 也是一樣 ERROR 嗎 ?
hipo
一般會員


發表:5
回覆:4
積分:1
註冊:2003-04-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-09 18:05:21 IP:203.204.xxx.xxx 未訂閱
謝謝你! 我的出勤檔有7000筆資料(每月挑完後) 請假檔有 400筆資料(每月挑完後) 程式Post如下,寬度好像不夠,會彎到第二行,請見諒 //開始日期 datep := datetimepicker1.Date; //結束日期 daten := datetimepicker2.Date; ymd := datep; while ymd <= daten do begin label1.Caption := datetostr(ymd); label1.Refresh; application.ProcessMessages; whrs := 0; wa1t := 0; wa1lt := 0; wa1et := 0; wa3t := 0; wa3et := 0; wa3lt := 0; with at02.dQuery1 do //p.165-52 begin close; sql.clear; //read 出勤檔 ,當日所有出勤者資料 sql.add('select * from ":at000706:daycal.db" where yearmonthday =''' datetostr(ymd) ''''); open; First; if at02.dQuery1.RecordCount <> 0 then begin while not eof do //p.170-58 //依出勤檔日期 read請假檔資料,扣抵遲到.早退.曠職 begin case screen.Cursor of // 游標旋轉 crSizeNESW: screen.Cursor := crSizeWE; crSizeWE: screen.Cursor := crSizeNWSE; crSizeNWSE: screen.Cursor := crSizeNS; crSizeNS: screen.Cursor := crSizeNESW; end; fempno := at02.dquery1.fieldbyname('empno').value; //showmessage(fempno); sumaxt := at02.dquery1.fieldbyname('a1t').value at02.dquery1.fieldbyname('a2t').value at02.dquery1.fieldbyname('a3et').value at02.dquery1.fieldbyname('a3lt').value; //update 出勤檔 with at02.dquery3 do //p.193-73 begin close; sql.clear; requestlive := true; sql.add('UPDATE ":at000706:daycal.db"'); sql.Add('set norectime =''' inttostr(sumaxt) ''''); sql.add('where yearmonthday =''' datetostr(ymd) '''and empno = ''' fempno ''''); ExecSQL; end; //with at02.dquery3 do//p.193-73 //read 請假檔 with at02.dquery2 do //p.184-66 begin close; sql.clear; sql.add('select * from ":sa000215:attendrecord.db" r,":sa000215:attendance.db" c'); sql.add(' where r.datef =''' datetostr(ymd) '''and r.empno =''' fempno ''' and r.attendanceno = c.attendanceno'); open; end; //t_attendrecord1 p.184-66 if at02.dquery2.RecordCount = 0 then begin checkhrs := sumaxt; //未打卡時間 ak := ''; // 請假類別 ah := 0; // 請假分鐘 lts := at02.dquery1.fieldbyname('latetimes').value; // 遲到次數 eys := at02.dquery1.fieldbyname('earlytimes').value; // 早退次數 end else begin ak := ''; ah := 0; lts := at02.dquery1.fieldbyname('latetimes').value; // 遲到次數 eys := at02.dquery1.fieldbyname('earlytimes').value; // 早退次數 wa1et := at02.dquery1.FieldByName('a1et').value; wa1lt := at02.dquery1.FieldByName('a1lt').value; wa3et := at02.dquery1.FieldByName('a3et').value; wa3lt := at02.dquery1.FieldByName('a3lt').value; at02.dquery2.first; while not at02.dquery2.eof do begin whrs := at02.dquery2.fieldbyname('hrs').value * 60; //扣除遲到 if (wa1lt > 0) and (whrs > 0) then begin wa1lt := whrs - wa1lt; if wa1lt >= 0 then begin whrs := wa1lt; wa1lt := 0; lts := '0'; end else begin wa1lt := -wa1lt; lts := '1'; whrs := 0; end; end; //扣除遲到 //扣除早退 if (wa1et > 0) and (whrs > 0) then begin wa1et := whrs - wa1et; if wa1et >= 0 then begin whrs := wa1et; wa1et := 0; eys := '0'; end else begin wa1et := -wa1et; eys := '1'; whrs := 0; end; end; //扣除早退 //扣除遲曠 if (wa3lt > 0) and (whrs > 0) then begin wa3lt := whrs - wa3lt; if wa3lt >= 0 then begin whrs := wa3lt; wa3lt := 0; end else begin wa3lt := -wa3lt; whrs := 0; end; end; //扣除遲曠 //扣除早曠 if (wa3et > 0) and (whrs > 0) then begin wa3et := whrs - wa3et; if wa3et >= 0 then begin whrs := wa3et; wa3et := 0; end else begin wa3et := -wa3et; whrs := 0; end; end; //扣除早曠 if at02.dquery2.recordcount = 1 then ak := at02.dquery2.fieldbyname('attendancename').value else ak := ak copy(at02.dquery2.fieldbyname('attendancename').value, 1, 2) ','; ah := ah at02.dquery2.fieldbyname('hrs').value * 60; at02.dquery2.next; end; wa1t := wa1lt wa1et; checkhrs := wa1t wa3et wa3lt; if checkhrs >= 0 then begin with at02.dquery3 do begin //update 出勤檔 close; sql.clear; requestlive := true; sql.add('UPDATE ":at000706:daycal.db"'); sql.Add('set norectime =''' inttostr(checkhrs) ''''); sql.Add(', attenkind =''' ak ''''); sql.Add(', attenhour =''' inttostr(ah) ''''); sql.Add(', latetimes =''' lts ''''); sql.Add(', earlytimes =''' eys ''''); sql.add(', a1t=''' inttostr(wa1t) ''''); sql.add(', a1lt=''' inttostr(wa1lt) ''''); sql.add(', a1et=''' inttostr(wa1et) ''''); sql.add(', a3lt=''' inttostr(wa3lt) ''''); sql.add(', a3et=''' inttostr(wa3et) ''''); sql.add('where yearmonthday =''' datetostr(ymd) '''and empno = ''' fempno ''''); ExecSQL; end; end else begin //update 出勤檔 with at02.dquery3 do begin close; sql.clear; requestlive := true; sql.add('UPDATE ":at000706:daycal.db"'); sql.Add('set norectime = 0'); sql.Add(', attenkind =''' ak ''''); sql.Add(', attenhour =''' inttostr(ah) ''''); sql.Add(', latetimes =''' lts ''''); sql.Add(', earlytimes =''' eys ''''); sql.add(', a1t=''' inttostr(wa1t) ''''); sql.add(', a1lt=''' inttostr(wa1lt) ''''); sql.add(', a1et=''' inttostr(wa1et) ''''); sql.add(', a3lt=''' inttostr(wa3lt) ''''); sql.add(', a3et=''' inttostr(wa3et) ''''); sql.add('where yearmonthday =''' datetostr(ymd) '''and empno = ''' fempno ''''); ExecSQL; end; end; end; next; end; //依出勤檔日期 read請假檔資料,扣抵遲到.早退.曠職 end; // if at02.dQuery1.RecordCount <> 0 end; // 該天所有的卡鐘記錄p.165-52 ymd := ymd 1; //下一天 end; //while ymd < daten do screen.Cursor := crDefault; showmessage('請假結算完成');
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-09 18:13:32 IP:218.16.xxx.xxx 未訂閱
你是在那裡出 lock file 錯誤丫 還有,你在 SQL Explorer 執行同一SQL 也是一樣 ERROR 嗎 ?
系統時間:2024-06-30 0:50:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!