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

無預警關P.C.電源,如何防止資料遺失.

尚未結案
cocodi
一般會員


發表:21
回覆:65
積分:17
註冊:2002-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-04 01:06:57 IP:61.222.xxx.xxx 未訂閱
請教各位先進: 資料庫我使用.dbf,但在Windows下有一個問題,若客戶無預警的直接關掉電源或Reset,會導致某些開啟中的檔資料後面數十筆資料遺失,請問 1.這是正常的嘛 2.是O.S.的問題,或者是Delphi-BDE的問題. 3.有無方法補救... 謝謝.
cmj
高階會員


發表:15
回覆:242
積分:226
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-04 01:35:44 IP:211.76.xxx.xxx 未訂閱
在有異動資料下,若資料尚未做POST無預警的直接關掉電源或Reset,是會造成資 料不見,和DELPHI無關,在DBASE或CLIPPER處理是先關檔或把BUFFER寫入檔案中 以減少資料遺失. 建議有異動後立即做POST
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-04 08:26:50 IP:61.224.xxx.xxx 未訂閱
建議,硬體的問題要用硬體解決,例如:使用類似工業電腦,Power / Reset 要把一個門打開才可以操作,如果這樣,使用者還可以說是『不小心』,那去維護時,就可以收維護費  如果擔心,使用者還不小心拔掉電源,那就買內建 > <>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
cocodi
一般會員


發表:21
回覆:65
積分:17
註冊:2002-06-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-04 14:54:07 IP:61.222.xxx.xxx 未訂閱
是僅要作POST就可以了嗎? 還是要Table.Close 再Open 才可以將Buffer寫入?
cmj
高階會員


發表:15
回覆:242
積分:226
註冊:2002-06-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-04 19:37:53 IP:211.76.xxx.xxx 未訂閱
1.Table1.Append or Table1.Edit
  .
  .
  Table1.Post;    2.在uses加入dbiprocs單元
  Table1.Append or Table1.Edit
  .
  .
  Table1.Post;
  DbiSaveChanges(Table1.Handle);      若是編輯資料存檔在
  procedure TForm1.Table1AfterPost(DataSet: TDataSet);
  begin
    DbiSaveChanges(TTable(DataSet).Handle);
  end;    以上兩種方式試試看會不會改善
發表人 - cmj 於 2003/07/04 19:39:18
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-04 19:56:35 IP:61.66.xxx.xxx 未訂閱
引言: 是僅要作POST就可以了嗎? 還是要Table.Close 再Open 才可以將Buffer寫入?
我的經驗 如cmj兄所提到, 異動後立刻存檔, 但 dbf 下 post 沒有用 我測試得到的結果如下 DB檔, 未採用 CLOSE-OPEN方式, 下了10筆POST 資料已POST, 異常關機 --> 本批已POST的10記錄全部消失, 檔案可能毀損, 利 用DESKTOP查看, 可以發現最後一筆有一個空的東西, 但指標卻是無法移到那裡 DBF檔, 未採用 CLOSE-OPEN方式, 下了10筆POST 資料已POST, 異常關機 --> 本批已POST的10記錄全部消失, 檔案不會毀損, 利 用DESKTOP查看, 可以發現最後一筆有一個空記錄, 指標可以移到那裡 DB檔, 每POST一筆就採用 CLOSE-OPEN方式 如果最後一筆記錄已POST未CLOSE, 異常關機 --> 本批POST的9筆存在, 最後一筆記錄消失, 檔案可能毀損, 利用DESKTOP查看, 可以發現最後一筆有一個空的東西, 但指標卻是無法移到那裡 DBF檔, 每POST一筆就採用 CLOSE-OPEN方式 如果最後一筆記錄已POST未CLOSE, 異常關機 --> 本批POST的9筆存在, 最後一筆記錄消失, 檔案不會毀損, 利用DESKTOP查看, 可以發現最後一筆有一個空的東西, 指標可以移到那裡 如果POST後用DbiSaveChanges, 據BDE的HELP來說, 形同 CLOSE-OPEN, 但我實 測結果如上面的狀況, 我在站上有放一個 XTABLE 的元件, 就是改寫了POST命令 在下 TABLE1.POST後有執行dbisavechanges, 但異常關機仍然造成資料的lost, 換句話說, 要確保資料存入, db, dbf 檔要close才行!
HomeSound
中階會員


發表:44
回覆:178
積分:94
註冊:2002-08-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-06 09:18:58 IP:61.30.xxx.xxx 未訂閱
先開一個temp???.txt檔,每輸入一個字就存temp???.txt一次 就算手賤按Reset,再開機時 Scandisk後, 再用程式判斷temp???.txt裡的資料有沒有進資料庫中了 有的話,當然temp???.txt就可刪掉,沒有的話就加進去喲! 笨方法僅供參考. --==多看.多學.多聽==--
------
--==多看.多學.多聽==--
cocodi
一般會員


發表:21
回覆:65
積分:17
註冊:2002-06-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-06 22:29:30 IP:61.222.xxx.xxx 未訂閱
無法用分數來表現我的感激,因為分數只有一分, 但是感謝每一位的費心,讓我又解開一個結, 謝謝
系統時間:2024-05-19 0:56:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!