| 導購 | 订阅 | 在线投稿
分享
 
 
當前位置: 王朝網路 >> delphi >> 第一講 Delphi操作數據庫基礎(上)
 

第一講 Delphi操作數據庫基礎(上)

2006-12-16 17:27:52  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  一、引言

   編程學苑—Delphi專題講座從本期開始了,心鈴在此先談談自己的一些想法。從年初接到責任編輯的約稿之後,心鈴一直在琢磨如何寫好本次Delphi專題講座,同時也參考、學習以前幾位心鈴的專題講座的風格。從專題的選擇來說,心鈴最終選擇了「數據庫」這個專題,一是心鈴業余時間主要是寫數據庫程序的,寫數據庫專題比較熟悉;二是數據庫的應用是目前最廣泛的,據統計約60%以上的應用軟件都是與數據庫有關的。心鈴希望這次Delphi數據庫專題講座能起到抛磚引玉的作用,使得讀者能通過本次講座學習到如何編制一個完整的數據庫應用程序,並在自己的工作、學習中得到應用。

   現在有關Delphi數據庫編程的書籍、資料也很多,心鈴不想東拼西湊地抄、搬一些資料來胡弄讀者,不想按照它們的如先講數據庫組件最後以一個例子來結束等風格來寫本次講座,也不能面面俱到地講解每個數據庫組件的屬性、方法和事件,因爲這些知識大部分都是重複幫助文件的內容,再者有些講了也沒多大用途,讀者可根據需要隨時從幫助文件中獲取,心鈴不想浪費寶貴的版面。本次講座將以一個稍微複雜一點的數據庫應用程序爲主線,將用到的數據庫組件及有關知識穿插講解,盡量做到覆蓋面廣一些,同時在講座中間可能插入一些小例子或技巧來講解一些組件重要的屬性、事件和方法等。所以,如果您習慣了一些書籍的編寫風格,可能會感到本次講座在組織形式上有點亂,但如果您能跟著講座堅持學習,相信您會有所收獲。

   本次講座計劃涉及的主要內容是:以本地數據庫爲主,介紹通過BDE存取數據庫;通過ODBC、ADO操作數據庫;SQL在數據庫中的應用;數據庫程序的安裝制做;如果時間、版面允許會介紹一下SQL SERVER。這只是一個計劃,將根據讀者反饋意見、編輯要求、時間或版面的情況進行適當調整。本講座以目前使用廣泛的Delphi 5.0企業版爲編程環境,雖然Delphi6.0已發行,心鈴的電腦中也安裝了,但可能目前用的讀者還不是太多,如果您用的是6.0版或4.0版,應該都是可以的,只不過有些數據庫組件所在組件面板的位置不一樣。順便說一下,寫本次講座的心鈴只是一個業余Delphi愛好者,非專職程序員,對Delphi的學習不是面面面俱到,對比較熟悉的內容也達不到非常精通的水平,所以本講座不適合高水平的讀者,適于初級和中級水平的讀者閱讀,在講座中可能會有一些錯誤之處,希望廣大讀者能及時指出,心鈴在得到提高的同時也能使其他讀者得到正確的信息。

   心鈴盡量將一些關鍵之處講解詳細,使讀者能理解和明白,希望讀者能及時提出建議、意見,將本次講座辦好,不辜負編輯的信任和讀者的期望。心鈴信箱:xinling@sweek.com,隨時准備接受您的意見、建議或其他問題。閱讀本講座的讀者應已具備數據庫的基本知識,如數據表、字段、字段類型、索引等概念,對delphi本身應該具備初級水平。

  下面心鈴先談談如何寫一個數據庫程序。

  二、如何寫一個數據庫程序

   心鈴非計算機專業科班出身,沒學過軟件工程等之類的課程,這裏只能從經驗來談談如何編寫一個數據庫程序。當然這裏的有些經驗也適用寫其他的程序。

  第一、首先應做一個方案。也可以說是一個計劃、大綱之類的東西吧,在方案中首先要根據自己或客戶的的需要把主要應具備的功能寫清除、寫詳細,這是很最關鍵的,否則在設計完成後發現有些功能由于事先沒有考慮周到再重新設計將會很麻煩的,可能有些需增加的功能容易補充,而有些可能由于沒有留下接口等等會造成將原來的代碼要做大量修改。其次,列出需要的輔助功能和其他一些通用功能。比如,對電腦和數據庫不熟悉的客戶一般不會提出數據庫壓縮、整理之類的功能,但我們在程序設計中應該考慮這些功能,還有如數據庫備份、恢複功能等;通用的一些功能如幫助文件、關于本程序等等,這些一般是任何軟件都應該有的。最後,將數據庫結構構建出來。根據需要完成的功能,選擇什麽樣的數據庫,數據庫應有幾個數據表,每個數據表應該具備多少字段,字段的類型、長度、是否允許空值,是否建立索引等都要寫清除。

  第二、設計初步程序流程。根據要完成的功能,將大致的程序流程寫出來,每個功能都要寫出基本流程,主要是爲以後的程序編寫起到一個指導作用,當然,在實際寫程序的過程中可能會有很多改動,但一個基本的流程會指導你在寫程序時不會出現大的偏差。

  第三、准備所需資料。這裏主要指的是編程所需資料,根據方案需要完成的功能分析可能需要哪些方面的資料,對非專職程序員來說,有些資料是不太可能記的非常牢,在寫程序時經常需要參考一些資料或以前編寫的程序代碼,把這些都找來,放在一個專用文件夾中(電子版)或放在案頭(紙介質類),以便于在需要時能及時查閱。當然,如果客戶提供的資料需要在編程中使用,當然更要准備好。另外,要考慮是否有一些功能單靠編程軟件自身不好完成需要使用第三方組件或其他輔助工具,如果需要把這些組件和工具也准備好。

  第四、設計初步界面。根據要完成的功能,在紙上設計一個大致的界面,考慮可能用到的菜單、工具欄、狀態條,采用獨立的窗口還是MID窗口介面等,這裏無需很細致的界面,因爲在實際寫程序中介面常常根據需要進行調整,這裏只是設計一個輪廓。

  第五、分析難點及解決方案。即使對一個編程高手來說,寫一個程序也會碰到一些比較困難之處。爲了能比較順利完成程序設計,最好根據所需功能和程序流程來對整個程序框架分析一下,根據自己掌握的知識、技能來找出某些困難之處,並找到解決方法。比如,對于比較複雜的查詢,可能用一條SQL語句查詢得不到所需結果,你就需要分析一下如何能完成這個功能,是否采用臨時數據表來實現,如果需要使用臨時數據表,那麽如何將數據導出到臨時表中,這樣的SQL語句如果還不會寫,那麽馬上查查資料看看如何實現,最好找一個臨時數據庫來寫幾句代碼驗證一下看能否解決,如果解決了,可將代碼作爲資料保存備用。這樣通過分析,將所有可能成爲難點之處都找出來並找到了解決方法後,在以後程序的編寫過程中雖然可能達不到一氣呵成的程度,也應該比較順利,總比在編程中碰到一個難點好幾天都無法解決而停下來要好吧!心鈴喜歡寫程序時能一口氣完成一個功能,這樣思路流暢,寫起來效率高,如果中間老是間斷就沒有心情了。當然這只是心鈴的習慣做法,可能有的讀者並不喜歡這種風格。

  第六、開始寫程序。在上面的准備工作做完之後,應該說,到這裏萬裏長征已走完了三分之一,或者說走完了一半都不誇張。因爲有了明確的程序流程、有了基本充足的資料、可能碰到的難點都找到了解決方案,我們還怕什麽呢?由于事先准備的比較充分,即使以後程序的編寫過程中可能還會碰到一些困難之處,但畢竟不會出現很多攔路虎了,我們需要的就是拿出一大塊時間,靜下心來認真按照方案和流程來寫程序了。這裏說明一點,在寫程序之前應該首先建立空白數據庫,當然可以在設計方案時同時建立數據庫,也可以在完成前面的五步之後在正式寫程序前建立空白數據庫。

   寫程序的幾點建議:由于數據庫程序和用戶的交互功能較多,用戶需要輸入的數據很多,所以必須充分考程序的錯誤處理,對用戶可能出現的輸入錯誤要充分考慮並在程序中盡量及時給出提示,在保存時對輸入數據進行校驗,防止一些非法數據保存到數據庫中,導致以後的統計、查詢出現錯誤。程序要寫的非常健壯是很不容易的,從心鈴寫數據庫程序的經驗來看,很大一部分精力都用在防止出錯、使得程序能健壯運行方面。一般在完成一個功能的代碼編寫後立即進行調試,通過後再編寫另外一個功能的代碼,這樣可防止代碼都編寫完畢再調試可能帶來的相互影響而弄不清除到底哪部分代碼有問題。代碼中關鍵的地方要加些注釋,以防以後自己都看不懂當初是怎麽寫的了。將程序代碼做好備份,免得萬一來一次災難而痛心疾首爲什麽沒及時備份代碼。

   關于如何寫一個數據庫程序就先談這麽多吧,以後在講座中還會結合例子講一些,這裏是僅供參考的幾點建議。

  三、Delphi是如何操作數據庫的?

   我們先來簡單了解一下Delphi是如何存取數據庫的。Delphi操作數據庫主要是利用BDE(數據庫引擎)來進行,當然通過其他方式繞過BDE直接訪問數據庫在Delphi中也都可以實現,不過,對于本地數據庫來說,通過BDE存取數據效率還是很高的。本地數據庫如果能熟練操作的話,編寫網絡數據庫也很容易上手了,對普通讀者來說,寫網絡數據庫的機會還是不如單機本地數據庫多,所以,本次講座的重點還是以本地數據庫爲主。

   BDE是Borland Database Engine的縮寫,它是負責用戶和數據庫打交道的中間媒介。事實上,應用程序是通過數據訪問組件和BDE連接,再由BDE去訪問數據庫來完成對數據庫的操作的,並非直接操作BDE。這樣用戶只需關心數據組件即可,不用去直接和BDE打交道。數據庫組件主要有數據訪問組件和數據控制組件,它們和數據庫的關系可用下面的示意圖來表示:

   用戶←→數據控制組件←→數據訪問組件←→BDE←→數據庫

  通過BDE幾乎可以操作目前所有類型的數據庫。我們來簡單了解一下常用的數據庫組件。

  (一)數據訪問組件(Data Access Component)

   數據訪問組件在組件面板的Data Access組件頁上,在這裏我們簡單介紹一下,Table、Query和Storedproc三個組件也稱爲數據集組件,用于和數據庫連接,讀者可將這些組件視爲數據庫,對它們的操作就可認爲是對數據庫的操作。

  DataSource組件是數據集組件和數據控制組件的連接媒介。數據控制組件是用戶操作數據庫中數據的界面,只有通過DataSource才能和數據集組件連接,從而獲得數據用來進行顯示、修改等操作。

  Table組件是通過數據庫引擎BDE來存取數據庫中的數據的,並通過BDE將用戶對數據庫的操作如添加、刪除、修改等傳遞回數據庫,這是非常重要的一個組件。

  Query組件是利用結構化查詢語言(Structured Query Language)通過 BDE來操作數據庫的,和Table組件完成的功能基本一樣,只是采用了SQL來實現,是重要的組件之一 。

  Storedproc組件是通過 BDE對服務器數據庫進行操作的,常用于客戶/服務器結構的數據庫應用程序。

  DataBase組件一般用于建立遠程的數據庫服務器--客戶/服務器結構的數據庫應用程序和數據庫之間的連接。

  Session組件是用于控制數據庫應用程序和數據庫連接的,主要用于複雜的功能,比如多線程數據庫程序編程。

  BatchMove組件 用于大批數據的轉移、複制等。

  UpdateSQL組件專用于只讀數據庫,用于緩存數據庫的更新。

  NestedTable組件通過BDE操作嵌套數據庫(一個數據庫作爲一個字段保存在另一個數據庫中),和Table組件類似,心鈴沒用過嵌套數據庫,所以對此組件沒有任何使用經驗。

  

  (二)數據控制組件(Data Control Component)

   數據控制組件也可稱爲數據顯示組件或數據浏覽組件。它們的主要功能是和數據訪問組件配合供用戶對數據進行浏覽、編輯等操作。數據控制組件在組件板上的DataControl頁上,共有15個組件。它們分別是: DBGrid組件、DBNavigator組件、DBText組件、DBEdit組件、DBMemo組件、DBImage組件、DBListbox組件、DBComboBox組件、DBCheckBox組件、DBRadioGroup組件、DBLookupListBox組件、DBLookupComboBox組件、DBRichEdit組件、DBCtrlGrid組件、DBChart組件。這些組件使用起來都不複雜,有幾個稍複雜一點的以後將會講解。這裏就不再逐個解釋了。

   另外還有一些組件與數據庫有關。Decision Cube是一組主要用于統計的組件,可以表格或圖形等直觀的方式表達統計結果,不過,似乎應用的不是很廣泛。QReport 組件是用來最後輸出報表的組件,從很多用戶的反應情況來看,此組件不太適合中國人報表的習慣,此組件是Borland從別的公司購買的,性能上不是太好,所以現在用的不是太多,另有一些第三提供的報表組件很好用,也有一些國人做的報表組件,很適合中國人的習慣,所以如果最後版面允許的話,將簡單介紹一下這些組件的使用。

   還有一個組件頁是ADO(ActiveX Data Objects),主要是使用微軟的 OLE DB 功能對在數據庫服務器中的數據進行訪問和操作。其主要優點是易于使用、高速度、低內存支出和占用磁盤空間較少。ADO 支持用于建立基于客戶端/服務器和 Web 的應用程序的主要功能。ADO 同時具有遠程數據服務 (RDS) 功能,通過 RDS 可以在一次往返過程中實現將數據從服務器移動到客戶端應用程序或 Web 頁、在客戶端對數據進行處理然後將更新結果返回服務器的操作。ADO現在逐漸流行起來,ADO本身也是很複雜的,微軟有專門的幫助文件來解釋如何使用ADO,本講座將會用一些篇幅來講解一下如何使用ADO來操作數據庫。

   第一講就先到這裏,在下一講中將著重介紹一下操作數據必須首先要了解的BDE的有關知識。
 
 
 
上一篇《DELPHI中的消息處理機制》
下一篇《第二講 Delphi操作數據庫基礎(下)》
 
 
 
 
 
 
日版寵物情人插曲《Winding Road》歌詞

日版寵物情人2017的插曲,很帶節奏感,日語的,女生唱的。 最後聽見是在第8集的時候女主手割傷了,然後男主用嘴幫她吸了一下,插曲就出來了。 歌手:Def...

兄弟共妻,我成了他們夜裏的美食

老鍾家的兩個兒子很特別,就是跟其他的人不太一樣,魔一般的執著。兄弟倆都到了要結婚的年齡了,不管自家老爹怎麽磨破嘴皮子,兄弟倆說不娶就不娶,老父母爲兄弟兩操碎了心...

如何磨出破洞牛仔褲?牛仔褲怎麽剪破洞?

把牛仔褲磨出有線的破洞 1、具體工具就是磨腳石,下面墊一個硬物,然後用磨腳石一直磨一直磨,到把那塊磨薄了,用手撕開就好了。出來的洞啊很自然的。需要貓須的話調幾...

我就是掃描下圖得到了敬業福和愛國福

先來看下敬業福和愛國福 今年春節,支付寶再次推出了“五福紅包”活動,表示要“把欠大家的敬業福都還給大家”。 今天該活動正式啓動,和去年一樣,需要收集“五福”...

冰箱異味産生的原因和臭味去除的方法

有時候我們打開冰箱就會聞到一股異味,冰箱裏的這種異味是因爲一些物質發出的氣味的混合體,聞起來讓人惡心。 産生這些異味的主要原因有以下幾點。 1、很多人有這種習...

《極品家丁》1-31集大結局分集劇情介紹

簡介 《極品家丁》講述了現代白領林晚榮無意回到古代金陵,並追隨蕭二小姐化名“林三”進入蕭府,不料卻陰差陽錯上演了一出低級家丁拼搏上位的“林三升職記”。...

李溪芮《極品家丁》片尾曲《你就是我最愛的寶寶》歌詞

你就是我最愛的寶寶 - 李溪芮 (電視劇《極品家丁》片尾曲) 作詞:常馨內 作曲:常馨內 你的眉 又鬼馬的挑 你的嘴 又壞壞的笑 上一秒吵鬧 下...

烏梅的功效與作用以及烏梅的食用禁忌有哪些?

烏梅,又稱春梅,中醫認爲,烏梅味酸,性溫,無毒,具有安心、除熱、下氣、祛痰、止渴調中、殺蟲的功效,治肢體痛、肺痨病。烏梅泡水喝能治傷寒煩熱、止吐瀉,與幹姜一起制...

什麽是脂肪粒?如何消除臉部脂肪粒?

什麽是脂肪粒 在我們的臉上總會長一個個像脂肪的小顆粒,弄也弄不掉,而且顔色還是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。 脂肪粒雖然也是由油脂...

網絡安全治理:國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰受害者

來源:中國青年報 新的攻擊方法不斷湧現,黑客幾乎永遠占據網絡攻擊的上風,我們不可能通過技術手段杜絕網絡攻擊。國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰...

河南夫妻在溫嶺網絡直播“造人”內容涉黃被刑事拘留

夫妻網絡直播“造人”爆紅   1月9日,溫嶺城北派出所接到南京警方的協查通告,他們近期打掉了一個涉黃直播APP平台。而根據掌握的線索,其中有一對涉案的夫妻主播...

如何防止牆紙老化?牆紙變舊變黃怎麽辦?

如何防止牆紙老化? (1)選擇透氣性好的牆紙 市場上牆紙的材質分無紡布的、木纖維的、PVC的、玻璃纖維基材的、布面的等,相對而言,PVC材質的牆紙最不透氣...

鮮肌之謎非日本生産VS鮮肌之謎假日貨是謠言

觀點一:破日本銷售量的“鮮肌之謎” 非日本生産 近一段時間,淘寶上架了一款名爲“鮮肌之謎的” 鲑魚卵巢美容液,號稱是最近日本的一款推出的全新護膚品,産品本身所...

中國最美古詩詞精選摘抄

系腰裙(北宋詞人 張先) 惜霜蟾照夜雲天,朦胧影、畫勾闌。人情縱似長情月,算一年年。又能得、幾番圓。 欲寄西江題葉字,流不到、五亭前。東池始有荷新綠,尚小如...

關于女人的經典語句

關于女人的經典語句1、【做一個獨立的女人】 思想獨立:有主見、有自己的人生觀、價值觀。有上進心,永遠不放棄自己的理想,做一份自己喜愛的事業,擁有快樂和成就...

未來我們可以和性愛機器人結婚嗎?

你想體驗機器人性愛嗎?你想和性愛機器人結婚嗎?如果你想,機器人有拒絕你的權利嗎? 近日,第二屆“國際人類-機器人性愛研討會”大會在倫敦金史密斯大學落下帷幕。而...

全球最變態的十個地方

10.土耳其地下洞穴城市 變態指數:★★☆☆☆ 這是土耳其卡帕多西亞的一個著名景點,傳說是當年基督教徒們爲了躲避戰爭而在此修建。裏面曾住著20000人,...

科學家稱,人類死亡後意識將在另外一個宇宙中繼續存活

據英國《每日快報》報道,一位科學家兼理論家Robert Lanza博士宣稱,世界上並不存在人類死亡,死亡的只是身體。他認爲我們的意識借助我們體內的能量生存,而且...

《屏裏狐》片頭曲《我愛狐狸精》歌詞是什麽?

《我愛狐狸精》 - 劉馨棋   (電視劇《屏裏狐》主題曲)   作詞:金十三&李旦   作曲:劉嘉   狐狸精 狐狸仙   千年修...

 
 
 
一、引言 編程學苑—Delphi專題講座從本期開始了,心鈴在此先談談自己的一些想法。從年初接到責任編輯的約稿之後,心鈴一直在琢磨如何寫好本次Delphi專題講座,同時也參考、學習以前幾位心鈴的專題講座的風格。從專題的選擇來說,心鈴最終選擇了「數據庫」這個專題,一是心鈴業余時間主要是寫數據庫程序的,寫數據庫專題比較熟悉;二是數據庫的應用是目前最廣泛的,據統計約60%以上的應用軟件都是與數據庫有關的。心鈴希望這次Delphi數據庫專題講座能起到抛磚引玉的作用,使得讀者能通過本次講座學習到如何編制一個完整的數據庫應用程序,並在自己的工作、學習中得到應用。 現在有關Delphi數據庫編程的書籍、資料也很多,心鈴不想東拼西湊地抄、搬一些資料來胡弄讀者,不想按照它們的如先講數據庫組件最後以一個例子來結束等風格來寫本次講座,也不能面面俱到地講解每個數據庫組件的屬性、方法和事件,因爲這些知識大部分都是重複幫助文件的內容,再者有些講了也沒多大用途,讀者可根據需要隨時從幫助文件中獲取,心鈴不想浪費寶貴的版面。本次講座將以一個稍微複雜一點的數據庫應用程序爲主線,將用到的數據庫組件及有關知識穿插講解,盡量做到覆蓋面廣一些,同時在講座中間可能插入一些小例子或技巧來講解一些組件重要的屬性、事件和方法等。所以,如果您習慣了一些書籍的編寫風格,可能會感到本次講座在組織形式上有點亂,但如果您能跟著講座堅持學習,相信您會有所收獲。 本次講座計劃涉及的主要內容是:以本地數據庫爲主,介紹通過BDE存取數據庫;通過ODBC、ADO操作數據庫;SQL在數據庫中的應用;數據庫程序的安裝制做;如果時間、版面允許會介紹一下SQL SERVER。這只是一個計劃,將根據讀者反饋意見、編輯要求、時間或版面的情況進行適當調整。本講座以目前使用廣泛的Delphi 5.0企業版爲編程環境,雖然Delphi6.0已發行,心鈴的電腦中也安裝了,但可能目前用的讀者還不是太多,如果您用的是6.0版或4.0版,應該都是可以的,只不過有些數據庫組件所在組件面板的位置不一樣。順便說一下,寫本次講座的心鈴只是一個業余Delphi愛好者,非專職程序員,對Delphi的學習不是面面面俱到,對比較熟悉的內容也達不到非常精通的水平,所以本講座不適合高水平的讀者,適于初級和中級水平的讀者閱讀,在講座中可能會有一些錯誤之處,希望廣大讀者能及時指出,心鈴在得到提高的同時也能使其他讀者得到正確的信息。 心鈴盡量將一些關鍵之處講解詳細,使讀者能理解和明白,希望讀者能及時提出建議、意見,將本次講座辦好,不辜負編輯的信任和讀者的期望。心鈴信箱:xinling@sweek.com,隨時准備接受您的意見、建議或其他問題。閱讀本講座的讀者應已具備數據庫的基本知識,如數據表、字段、字段類型、索引等概念,對delphi本身應該具備初級水平。 下面心鈴先談談如何寫一個數據庫程序。 二、如何寫一個數據庫程序 心鈴非計算機專業科班出身,沒學過軟件工程等之類的課程,這裏只能從經驗來談談如何編寫一個數據庫程序。當然這裏的有些經驗也適用寫其他的程序。 第一、首先應做一個方案。也可以說是一個計劃、大綱之類的東西吧,在方案中首先要根據自己或客戶的的需要把主要應具備的功能寫清除、寫詳細,這是很最關鍵的,否則在設計完成後發現有些功能由于事先沒有考慮周到再重新設計將會很麻煩的,可能有些需增加的功能容易補充,而有些可能由于沒有留下接口等等會造成將原來的代碼要做大量修改。其次,列出需要的輔助功能和其他一些通用功能。比如,對電腦和數據庫不熟悉的客戶一般不會提出數據庫壓縮、整理之類的功能,但我們在程序設計中應該考慮這些功能,還有如數據庫備份、恢複功能等;通用的一些功能如幫助文件、關于本程序等等,這些一般是任何軟件都應該有的。最後,將數據庫結構構建出來。根據需要完成的功能,選擇什麽樣的數據庫,數據庫應有幾個數據表,每個數據表應該具備多少字段,字段的類型、長度、是否允許空值,是否建立索引等都要寫清除。 第二、設計初步程序流程。根據要完成的功能,將大致的程序流程寫出來,每個功能都要寫出基本流程,主要是爲以後的程序編寫起到一個指導作用,當然,在實際寫程序的過程中可能會有很多改動,但一個基本的流程會指導你在寫程序時不會出現大的偏差。 第三、准備所需資料。這裏主要指的是編程所需資料,根據方案需要完成的功能分析可能需要哪些方面的資料,對非專職程序員來說,有些資料是不太可能記的非常牢,在寫程序時經常需要參考一些資料或以前編寫的程序代碼,把這些都找來,放在一個專用文件夾中(電子版)或放在案頭(紙介質類),以便于在需要時能及時查閱。當然,如果客戶提供的資料需要在編程中使用,當然更要准備好。另外,要考慮是否有一些功能單靠編程軟件自身不好完成需要使用第三方組件或其他輔助工具,如果需要把這些組件和工具也准備好。 第四、設計初步界面。根據要完成的功能,在紙上設計一個大致的界面,考慮可能用到的菜單、工具欄、狀態條,采用獨立的窗口還是MID窗口介面等,這裏無需很細致的界面,因爲在實際寫程序中介面常常根據需要進行調整,這裏只是設計一個輪廓。 第五、分析難點及解決方案。即使對一個編程高手來說,寫一個程序也會碰到一些比較困難之處。爲了能比較順利完成程序設計,最好根據所需功能和程序流程來對整個程序框架分析一下,根據自己掌握的知識、技能來找出某些困難之處,並找到解決方法。比如,對于比較複雜的查詢,可能用一條SQL語句查詢得不到所需結果,你就需要分析一下如何能完成這個功能,是否采用臨時數據表來實現,如果需要使用臨時數據表,那麽如何將數據導出到臨時表中,這樣的SQL語句如果還不會寫,那麽馬上查查資料看看如何實現,最好找一個臨時數據庫來寫幾句代碼驗證一下看能否解決,如果解決了,可將代碼作爲資料保存備用。這樣通過分析,將所有可能成爲難點之處都找出來並找到了解決方法後,在以後程序的編寫過程中雖然可能達不到一氣呵成的程度,也應該比較順利,總比在編程中碰到一個難點好幾天都無法解決而停下來要好吧!心鈴喜歡寫程序時能一口氣完成一個功能,這樣思路流暢,寫起來效率高,如果中間老是間斷就沒有心情了。當然這只是心鈴的習慣做法,可能有的讀者並不喜歡這種風格。 第六、開始寫程序。在上面的准備工作做完之後,應該說,到這裏萬裏長征已走完了三分之一,或者說走完了一半都不誇張。因爲有了明確的程序流程、有了基本充足的資料、可能碰到的難點都找到了解決方案,我們還怕什麽呢?由于事先准備的比較充分,即使以後程序的編寫過程中可能還會碰到一些困難之處,但畢竟不會出現很多攔路虎了,我們需要的就是拿出一大塊時間,靜下心來認真按照方案和流程來寫程序了。這裏說明一點,在寫程序之前應該首先建立空白數據庫,當然可以在設計方案時同時建立數據庫,也可以在完成前面的五步之後在正式寫程序前建立空白數據庫。 寫程序的幾點建議:由于數據庫程序和用戶的交互功能較多,用戶需要輸入的數據很多,所以必須充分考程序的錯誤處理,對用戶可能出現的輸入錯誤要充分考慮並在程序中盡量及時給出提示,在保存時對輸入數據進行校驗,防止一些非法數據保存到數據庫中,導致以後的統計、查詢出現錯誤。程序要寫的非常健壯是很不容易的,從心鈴寫數據庫程序的經驗來看,很大一部分精力都用在防止出錯、使得程序能健壯運行方面。一般在完成一個功能的代碼編寫後立即進行調試,通過後再編寫另外一個功能的代碼,這樣可防止代碼都編寫完畢再調試可能帶來的相互影響而弄不清除到底哪部分代碼有問題。代碼中關鍵的地方要加些注釋,以防以後自己都看不懂當初是怎麽寫的了。將程序代碼做好備份,免得萬一來一次災難而痛心疾首爲什麽沒及時備份代碼。 關于如何寫一個數據庫程序就先談這麽多吧,以後在講座中還會結合例子講一些,這裏是僅供參考的幾點建議。 三、Delphi是如何操作數據庫的? 我們先來簡單了解一下Delphi是如何存取數據庫的。Delphi操作數據庫主要是利用BDE(數據庫引擎)來進行,當然通過其他方式繞過BDE直接訪問數據庫在Delphi中也都可以實現,不過,對于本地數據庫來說,通過BDE存取數據效率還是很高的。本地數據庫如果能熟練操作的話,編寫網絡數據庫也很容易上手了,對普通讀者來說,寫網絡數據庫的機會還是不如單機本地數據庫多,所以,本次講座的重點還是以本地數據庫爲主。 BDE是Borland Database Engine的縮寫,它是負責用戶和數據庫打交道的中間媒介。事實上,應用程序是通過數據訪問組件和BDE連接,再由BDE去訪問數據庫來完成對數據庫的操作的,並非直接操作BDE。這樣用戶只需關心數據組件即可,不用去直接和BDE打交道。數據庫組件主要有數據訪問組件和數據控制組件,它們和數據庫的關系可用下面的示意圖來表示: 用戶←→數據控制組件←→數據訪問組件←→BDE←→數據庫 通過BDE幾乎可以操作目前所有類型的數據庫。我們來簡單了解一下常用的數據庫組件。 (一)數據訪問組件(Data Access Component) 數據訪問組件在組件面板的Data Access組件頁上,在這裏我們簡單介紹一下,Table、Query和Storedproc三個組件也稱爲數據集組件,用于和數據庫連接,讀者可將這些組件視爲數據庫,對它們的操作就可認爲是對數據庫的操作。 DataSource組件是數據集組件和數據控制組件的連接媒介。數據控制組件是用戶操作數據庫中數據的界面,只有通過DataSource才能和數據集組件連接,從而獲得數據用來進行顯示、修改等操作。 Table組件是通過數據庫引擎BDE來存取數據庫中的數據的,並通過BDE將用戶對數據庫的操作如添加、刪除、修改等傳遞回數據庫,這是非常重要的一個組件。 Query組件是利用結構化查詢語言(Structured Query Language)通過 BDE來操作數據庫的,和Table組件完成的功能基本一樣,只是采用了SQL來實現,是重要的組件之一 。 Storedproc組件是通過 BDE對服務器數據庫進行操作的,常用于客戶/服務器結構的數據庫應用程序。 DataBase組件一般用于建立遠程的數據庫服務器--客戶/服務器結構的數據庫應用程序和數據庫之間的連接。 Session組件是用于控制數據庫應用程序和數據庫連接的,主要用于複雜的功能,比如多線程數據庫程序編程。 BatchMove組件 用于大批數據的轉移、複制等。 UpdateSQL組件專用于只讀數據庫,用于緩存數據庫的更新。 NestedTable組件通過BDE操作嵌套數據庫(一個數據庫作爲一個字段保存在另一個數據庫中),和Table組件類似,心鈴沒用過嵌套數據庫,所以對此組件沒有任何使用經驗。 (二)數據控制組件(Data Control Component) 數據控制組件也可稱爲數據顯示組件或數據浏覽組件。它們的主要功能是和數據訪問組件配合供用戶對數據進行浏覽、編輯等操作。數據控制組件在組件板上的DataControl頁上,共有15個組件。它們分別是: DBGrid組件、DBNavigator組件、DBText組件、DBEdit組件、DBMemo組件、DBImage組件、DBListbox組件、DBComboBox組件、DBCheckBox組件、DBRadioGroup組件、DBLookupListBox組件、DBLookupComboBox組件、DBRichEdit組件、DBCtrlGrid組件、DBChart組件。這些組件使用起來都不複雜,有幾個稍複雜一點的以後將會講解。這裏就不再逐個解釋了。 另外還有一些組件與數據庫有關。Decision Cube是一組主要用于統計的組件,可以表格或圖形等直觀的方式表達統計結果,不過,似乎應用的不是很廣泛。QReport 組件是用來最後輸出報表的組件,從很多用戶的反應情況來看,此組件不太適合中國人報表的習慣,此組件是Borland從別的公司購買的,性能上不是太好,所以現在用的不是太多,另有一些第三提供的報表組件很好用,也有一些國人做的報表組件,很適合中國人的習慣,所以如果最後版面允許的話,將簡單介紹一下這些組件的使用。 還有一個組件頁是ADO(ActiveX Data Objects),主要是使用微軟的 OLE DB 功能對在數據庫服務器中的數據進行訪問和操作。其主要優點是易于使用、高速度、低內存支出和占用磁盤空間較少。ADO 支持用于建立基于客戶端/服務器和 Web 的應用程序的主要功能。ADO 同時具有遠程數據服務 (RDS) 功能,通過 RDS 可以在一次往返過程中實現將數據從服務器移動到客戶端應用程序或 Web 頁、在客戶端對數據進行處理然後將更新結果返回服務器的操作。ADO現在逐漸流行起來,ADO本身也是很複雜的,微軟有專門的幫助文件來解釋如何使用ADO,本講座將會用一些篇幅來講解一下如何使用ADO來操作數據庫。 第一講就先到這裏,在下一講中將著重介紹一下操作數據必須首先要了解的BDE的有關知識。
󰈣󰈤
 
 
 
  免責聲明:本文僅代表作者個人觀點,與王朝網路無關。王朝網路登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
 
陽光靓麗的模特兒(8)
陽光靓麗的模特兒(7)
陽光靓麗的模特兒(6)
陽光靓麗的模特兒(5)
秋-印象
德慶盤龍峽 一
松江印象之三
雲之南(寬幅)
 
>>返回首頁<<
 
 
 
 熱帖排行
 
 
 
 
© 2005- 王朝網路 版權所有