我使用D6+INTERBASE6(D6自帶的),使用TIBClientDataSet控件效果很好, 使用 Cach update 麻煩很多。 //下面是李維的文章,也許對你有幫助。 InterBase一直被相當數(shù)量的接觸過它的開發(fā)人員認為是不能勝任關(guān)鍵任務(wù)的數(shù)據(jù)庫。在我的實際開發(fā)中,我也確實遇到了他們遇到的問題。然而經(jīng)過了長期的使用,我發(fā)現(xiàn),絕大多數(shù)的問題和困難都是對此數(shù)據(jù)庫不了解、使用方法不當造成的。后來許多開發(fā)中的問題都得到了解決,此后再看InterBase,發(fā)現(xiàn)它是一個相當可信、可靠的數(shù)據(jù)庫。那么,我想把InterBase數(shù)據(jù)庫開發(fā)中的注意事項列舉出來,希望大家能夠批評指正。 1、要選擇正確的InterBase版本。Borland發(fā)布的較好的版本是6.0.1.6版,這個版本是最好的borland官方版本。但是,我本人更傾向于FireBird版,它是公開源代碼免費版,網(wǎng)址為http://www./。很可能這個版本比Borland版本更穩(wěn)定可靠,更新更持續(xù)。 2、不要用BDE訪問InterBase,推薦用IBX或DBExpress。前者具備更多的服務(wù)器端API,能夠更全面的控制和訪問數(shù)據(jù)庫。特別該注意的是,IBX元件一定要升級,開發(fā)人員應(yīng)經(jīng)常到http://codecentral./codecentral/ccweb.exe/author?authorid=102去看IBX元件更新和其他IB開發(fā)中有用的資源。 3、要使用恰當?shù)拈_發(fā)工具。例如EMS QuickDesk或IBExpert。網(wǎng)址為http://www.,/http://www./。 4、建立數(shù)據(jù)庫對象時一定要使用大寫,因為InterBase6本身支持大小寫敏感的對象名稱,但象IBX這樣的元件卻不能認識小寫InterBase對象 5、建庫時,CharSet一定要選NONE。如果選擇GB2312或Big5,反而會造成錯誤。 6、開發(fā)中,大批量提交數(shù)據(jù),一定不要使用ibtable.insert這種方法,而應(yīng)使用ibquery中執(zhí)行insert into語句的方法,或者使用存儲過程 7、InterBase系統(tǒng)中transaction一定不要長期的處于pending的狀態(tài),比如,已經(jīng)在某Transaction中進行了更新2000條數(shù)據(jù)的動作,但該Transaction卻一直懸而未決,不commit。而是應(yīng)該讓Transaction生存期盡量的短,每個Transaction中的數(shù)據(jù)更改不可過于龐大。例如,我推薦用ClientDataSet進行數(shù)據(jù)的更新,當打開ClientDataSet時,就開啟一個Transaction,將數(shù)據(jù)從庫中取出,然后立刻關(guān)閉該Transaction,到提交更新時再次開啟一個transaction,進行數(shù)據(jù)更新。這種方法應(yīng)用到客戶量繁多、或Web系統(tǒng)上,比較合理。 8、要充分發(fā)揮InterBase6的Transaction特性。對于IBX元件訪問方式,應(yīng)該雙擊IBTransaction元件,選擇交易模式為ReadCommited。 9、開發(fā)Delphi Web程序時使用InterBase數(shù)據(jù)庫,一定要選擇遠程連接方式,即要設(shè)定服務(wù)器名稱,即使WebServer和InterBase處在相同的機器上。用InterBase和InternetExpress開發(fā)Web程序,一定要在工程源代碼的uses列表最前端按順序加入4個unit: IBIntf,IBSQLMonitor,XMLBrokr,MidProd, 10、不要使用過于復(fù)雜的嵌套查詢。我覺得,絕大多數(shù)的多級嵌套查詢都可以Flatten掉,或者用存儲過程解決問題 遵循一定的原則和方法,我發(fā)現(xiàn)InterBase/FireBird用起來感覺不錯 |
|
來自: diamond > 《電腦相關(guān)》