好像武俠小說(shuō)里邊說(shuō)的:你的招式忘了沒有?,回答:差不多忘了,忘了就好。 這與 數(shù)據(jù)庫(kù) 編程 有什么關(guān)系?關(guān)系可大了。同志們學(xué)過Pascal、BASIC、C(C++)沒有?如果沒有,F(xiàn)OXBASE、FOXPRO應(yīng)該學(xué)過吧?按以上這些語(yǔ)言 編程 ,都是過程化的,說(shuō)白一點(diǎn)就是一個(gè)
好像武俠小說(shuō)里邊說(shuō)的:“你的招式忘了沒有?”,回答:“差不多忘了”,“忘了就好”。
這與數(shù)據(jù)庫(kù)編程有什么關(guān)系?關(guān)系可大了。同志們學(xué)過Pascal、BASIC、C(C++)沒有?如果沒有,F(xiàn)OXBASE、FOXPRO應(yīng)該學(xué)過吧?按以上這些語(yǔ)言編程,都是過程化的,說(shuō)白一點(diǎn)就是一個(gè)數(shù)據(jù)一個(gè)數(shù)據(jù)、一條記錄一條記錄去處理(FOXBASE、FOXPRO不完全這樣,但書上也經(jīng)常是這樣介紹的),當(dāng)初我接觸ACCESS 97時(shí),一下子沒有了IF、FOR這些語(yǔ)句(指數(shù)據(jù)處理),都用SQL語(yǔ)句,真是找不到北了,好在我學(xué)SQL語(yǔ)言時(shí),也盡量忘掉這個(gè)IF、FOR,到我忘得差不多時(shí),功夫也進(jìn)了一大步,原來(lái)要編一大段程序,現(xiàn)在一兩條SQL語(yǔ)句搞定,就算用多幾條SQL語(yǔ)句,由于是在圖形界面下做,可視化操作,拉拉扯扯,再修改一下生成的SQL語(yǔ)句,也就省事多了。
由于ACCESS具備完整的SQL語(yǔ)言(FOXBASE沒有、FOXPRO不完整),我從ACCESS 97開始用ACCESS編程,到現(xiàn)在為止,DAO、ADO很少用,加上最近從愛賽思上接觸的一些技術(shù),基本上不用DAO、ADO都可以了,可以從我的“未完工的庫(kù)存管理”中看出,只是在特殊情況下才偶爾用一下。(少用,但不是不用,還得學(xué),不要誤解)
如何學(xué)好數(shù)據(jù)庫(kù)編程?下面介紹一下本人的一些經(jīng)驗(yàn),僅供參考:
1.首先要把原來(lái)一個(gè)數(shù)據(jù)一個(gè)數(shù)據(jù)、一條記錄一條記錄的數(shù)據(jù)處理方式忘掉,越徹底越好。
現(xiàn)在用成批處理了。少用記錄集一條記錄一條記錄地處理,盡量用SQL語(yǔ)句。
2.學(xué)好關(guān)系數(shù)據(jù)庫(kù)的理論,尤其是規(guī)范化理論,表的設(shè)計(jì)一定要規(guī)范化,最起碼要規(guī)范化到第三范式。集合運(yùn)算(并、交、差)。關(guān)系運(yùn)算(選擇、投影、連接)。其中連接與規(guī)范化是緊密結(jié)合的。
3.運(yùn)用面向?qū)ο蟮募夹g(shù):面向?qū)ο蟮姆治鯫OA、面向?qū)ο蟮脑O(shè)計(jì)OOD、面向?qū)ο蟮木幊蘋OP,根據(jù)表的關(guān)系,用窗體和子窗體、報(bào)表和子報(bào)表,仿真面向?qū)ο螅@樣可以增加程序的可讀性和可維護(hù)性。(這是高級(jí)技術(shù),同志們不要輕視,做大項(xiàng)目你就知道有用了)
4.用查詢時(shí),通常一步做不出來(lái),可以分幾步做,本人通常是這么做的,從我給網(wǎng)友回復(fù)的例子中也可以看得出。為什么要這樣做?(1)有些是SQL語(yǔ)言的限制,沒辦法一步做出來(lái),逼的;(2)可以檢查每一步查詢的結(jié)果,容易調(diào)試;(3)增加可讀性,便于日后維護(hù)。
5.查詢的結(jié)果用窗體顯示或用報(bào)表打印,兩者的技術(shù)差不多。通常改變打開窗體或報(bào)表的條件就可控制顯示或打印的記錄范圍。另外用查詢做數(shù)據(jù)源時(shí),動(dòng)態(tài)改變查詢中的SQL語(yǔ)句,比在查詢中引用窗體的控件要方便,因?yàn)镾QL語(yǔ)句生成是在VBA中,可以先存放在字符變量中,然后再更新查詢的SQL語(yǔ)句,這樣就可以用斷點(diǎn)來(lái)檢查變量值對(duì)不對(duì),如果在查詢中引用窗體的控件,尤其是包含IIF()函數(shù)時(shí),調(diào)試是很困難的。
6.開發(fā)一個(gè)系統(tǒng),首先要解決技術(shù)問題,即算法,用簡(jiǎn)單例子,把算法弄懂了,再詳細(xì)設(shè)計(jì),這一點(diǎn)從網(wǎng)友的提問中可以看出,有很多人問題表達(dá)不清楚,有的人其中夾了很多與算法無(wú)關(guān)的東西,尤其是很專業(yè)的東西,別人不容易看得明白,由于算法沒搞清楚,程序就無(wú)法編了。
7.不要使用過多的工具特性,使用過多的工具特性會(huì)使可讀性降低,可維護(hù)性差,要?jiǎng)e人幫忙時(shí)難以得到幫助,更要命的是可移植性差,從MDB到ADP就可以體會(huì)到了,所以在編程時(shí)可讀性很重要,可移植性更重要,你甘心自己的程序就固定在一個(gè)環(huán)境下運(yùn)行嗎?你甘心永遠(yuǎn)用一個(gè)工具搞開發(fā)嗎?為了你的“錢途”,不要玩弄太多的技巧,當(dāng)然技術(shù)研究是另外一碼事。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com