Delphi碰上PARADOX |
|
coolman
一般會員 發表:11 回覆:17 積分:17 註冊:2002-12-05 發送簡訊給我 |
大家有沒有遇到過PARADOX資料庫莫名其妙丟資料的情況? 案例一: 我用的PARADOX資料庫中有一個ORDER表,是用來存放定單使用者資料的,三萬多條記錄,一個自動增加型字段OR_id做主鍵,程序設計沒有用DATABASE控件,全部用TABLE組件的OPEN,POST,CLOSE事件,但有時侯會莫名其妙丟失當天錄入的幾百條資料,偶爾會把庫里所有資料大部分丟失,只剩幾十條資料(幸好我每天都用最原始的批處理來備份原文件),查看該ORDER。DB文件大小也變的只有幾十K,正常是1M多,我很困惑,大家有沒有遇到過這種現象? 案例二: 我以前時制作的一個軟體,也是超過幾萬條后發生丟失,不過丟的資料並不多,造成的麻煩可不小。發生幾次后,盡管BDE存取PARADOX時速度非常的快,我還是換為了ADO ACCESS來用,就一切正常了。 案例三: 我用paradox 常常遇到索引文件出錯的情況。
反正我現在不喜歡它了,能用最好用IB桌面版本或者Sybase。 案例四: 我們公司作監控軟體,用的就是paradox資料庫!
他很脆弱的,我們的資料量比較大,一般就是30到40個庫!每個庫理論大小是
2G的容量,但是不到200M的時候,已經不行了!我們對資料庫的就是存的多,別的
很少用,不過我做過試驗,資料庫很小的時候,訪問過頻繁!很容易出問題的!!
我勸你剛塊換資料庫!!我們用ms-sql!順便說一下access也不保險!! 案例五: 我原來錯車道收費程序遇到過,系統連續運行一個多月后,就發現資料丟失的現象,經常是連續幾天沒有資料,需要重新啟動程序才行,我是百思不得其解,后來實驗了許多方法,最后終於搞定,我原來在對PX表插入資料時候,表是一直打開的,后來我改成插入一條記錄后就關閉該表,到現在就沒聽說有丟失資料的事情啦 案例六: 我遇到的與Ykang的情況一樣,POST 后必須連接表的DataSet必須Close一下才可以正常插入。這可能就是BDE控制Buffer寫入硬碟出了問題,我用UltraEdit觀察了Paradox表文件,發現POST時並沒有寫入表文件,refresh也沒有寫入表文件,只有Close才寫入。好像再一次POST時,前一次記錄會寫入文件,但當前記錄不會(我記不清楚了,你自己試一試吧)。另外,Paradox的索引文件極容易出錯,不知有什麼補救辦法? 發表人 - coolman 於 2002/12/06 12:14:11
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
用Paradox要出錯很簡單,
用兩台電腦一台當主機分享目錄存放Paradox檔案
另一台工作站連上這個目錄的Paradox檔,
當工作站電腦使用TTable在Edit模式下輸入了修改的資料,
將工作站按Reset電腦重新開機,
此時主機中的Paradox檔案就已經損毀了,
必需用FIXDB工具去修護,
一般而言是可以修的好的,
但是,有時後修完資料會Lose很多不見! 至於Access也是屬於檔案型式,有時也會損毀,
也是可以用修護還原,
但是,有時修好了之後索引會不見,
必需重新建立索引! 以上為個人經驗! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
|
danny
版主 發表:100 回覆:522 積分:595 註冊:2002-03-11 發送簡訊給我 |
|
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 大家有沒有遇到過PARADOX資料庫莫名其妙丟資料的情況? 案例一: 我用的PARADOX資料庫中有一個ORDER表,是用來存放定單使用者資料的,三萬多.... 我也遇過, 不過我的情況是user前天建的資料, 在第三天不見了或者被還原成三天前的記錄, 我查不出原因, 但又不能承認自己使用的資料庫有問題, 只好告訴user這是windows問題, 反正M$的風評大家也知道, 賴一下可以省不少糾紛, 不過還好情況不是常發生, 有時會幫他們重建WINDOWS後, 就沒有再發生(有點訐詐哦!) 案例三: 我用paradox 常常遇到索引文件出錯的情況... 我現在都把 db檔當成一些參數設定之用, 不拿來做主資料, 這樣在設計或coding上會比較容易, 而且也不怕資料毀損, 因為這些只是參數, 壞了就重新再複製一份就好, 還有一個好處就是, 程式寫得十全十美沒有問題並不是很好, 這樣就沒有售後服務了, 為了保留一點自己的利益, 不得己使然! 案例四: 我們公司作監控軟體,用的就是paradox資料庫! 他很脆弱的,我們的資料量比較大,一般就是30到40個庫!每個庫理論大小是 2G的容量,但是不到200M的時候,已經不行了!我們對資料庫的就是存的多,別的... Access 在上萬筆來說就已經是極限, 而Paradox一般還可以做到60-80萬筆, 我的測試結果, db檔的最大極限約在400M, 但這當然還要看你結構的規劃, 超過的結果是無法新增, 系統會告訴你 Table is Full 但100M以上在開檔如果用TTable或TQuery 那可以一件很慘的事! 案例五: 案例六: 我遇到的與Ykang的情況一樣,POST 后必須連接表的DataSet必須Close一下才可以正常插入。這可能就是BDE控制Buffer寫入硬碟出了問題,我用UltraEdit觀察了Paradox表文件,發現POST時並沒有寫入表文件,refresh也沒有寫入表文件,只有Close才寫入。好像再一次POST時,前一次記錄會寫入文件,但當前記錄不會(我記不清楚了,你自己試一試吧)。另外,Paradox的索引文件極容易出錯,不知有什麼補救辦法? db檔根據文獻記錄, post是回存到buffer上, 即使你在網路上看到有宣稱修正過的TTable.Post可以解決這個問題或是書上告訴你利用 bde中的直接function [dbisavechange]來做, 我都試過是無效的, 唯一的方法就是 edit, append後下post, 然後 close, 再open 才能確保資料真正回存硬碟, 雖然我仔細查看 refresh的原始構成也是 close, open , 但實際的程式運作中可能有未公開的程式碼在執行, 因此確保你資料的存在, 就是 close, open, locate(或用bookmark)來回到原來記錄, 別無他法! 發表人 - coolman 於 2002/12/06 12:14:11 |
HANGTEN
一般會員 發表:12 回覆:15 積分:5 註冊:2002-07-20 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
|
zong
初階會員 發表:11 回覆:51 積分:42 註冊:2002-08-18 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 各位先進! 1.小弟寫了幾年的Database app 還是不知道單機要用什麼資料庫好說! 我仍用笨笨的PARADOX ! 有比較好的建議嗎!! 因為上面只說缺點! 我還是有看沒有懂!?? 資愚 所以只有勤發問了! 如果不要錢的話, 我的建議用 dbf, 但如果儲存資料要有圖片或密碼, dbf辦不到, db, access可以辦到 2.那客戶要有二、三個Client 又不肯花$$ 要用什麼DATABASE?? 目前我是採PostgreSQL (日本人改的win ver) 因為之前mysql 不支援roll back! 才剛開發完成不久! 所以也不知有沒有問題?? interbase 吧~ |
fangwy
中階會員 發表:99 回覆:139 積分:62 註冊:2003-09-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |