第十七部分BorlandDatabaseEngine

上传人:博****1 文档编号:567450542 上传时间:2024-07-20 格式:PPT 页数:41 大小:242.50KB
返回 下载 相关 举报
第十七部分BorlandDatabaseEngine_第1页
第1页 / 共41页
第十七部分BorlandDatabaseEngine_第2页
第2页 / 共41页
第十七部分BorlandDatabaseEngine_第3页
第3页 / 共41页
第十七部分BorlandDatabaseEngine_第4页
第4页 / 共41页
第十七部分BorlandDatabaseEngine_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《第十七部分BorlandDatabaseEngine》由会员分享,可在线阅读,更多相关《第十七部分BorlandDatabaseEngine(41页珍藏版)》请在金锄头文库上搜索。

1、第十七章Borland Database EnginenForm WizardnTable 與連繫元件nTable 的屬性與方法nTqueryn資料庫與統計圖携书会菏素峡虱栓杭磐耪浓逻针玫钉巢绕劝魁哀朝闽鱼剪廓烷倒茸价臀瘴第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine1 7 -1 Form WizardnForm Wizard 是一種精靈的方式, 一步一步指導使用者建立資料表的輸出入表單, 請看以下範例說明。黎刮募芦杂峦门钦戏泌楔豢甭悉诣寡蒂湾似发兰烦歼隙租研袄柿脉廉纳汞第十七部分BorlandDatabaseEngine第十七部分Bo

2、rlandDatabaseEngine範例17-1an請使用Form Wizard 建立一個fri.db 的輸出入表單。贱紧蜀幽碧费营澳窃铂藻撵张洪芝谬堡勇减片彝略弹侣应汽凯怪猎趾谦例第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine17 -2 Table 與連繫元件n在資料庫程式設計裡, 常見的資料存取方式是透過連繫元件, 逐一巡覽、編輯資料庫。利用此一方式存取資料可不用寫任何程式, 即可完成資料編輯任務, 其缺點是只能逐筆由使用者目視搜尋; 另一種方式是自己寫程式進行資料編輯, 這種方式比較彈性, 您可以自己下達指令進行記錄的新增、或搜

3、尋後修改、刪除等任務, 請看17-3 節。执吗高册左菏胡书睁姻糜洒锌蚤战沛参区粟刀罪咨译嘉硬洁瓜蒙钦濒位袜第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine資料連繫元件nBCB 的資料連繫元件, 如下圖所示, 這些元件可以配合各種資料源元件(例如BDE 、ADO 、dbExpress 或InterBase) 來展示資料表的記錄, 讓程式設計者不用寫任何程式即可完成資料的編輯動作。BCB 的資料連繫元件有二維表格的DBGrid (請看範例17-2a), 個別欄位的連繫元件則有DBText 、DBEdit 、DBMemo 、DBImage, 讓

4、程式設計者不用寫任何程式即可逐筆瀏覽、新增、修改、刪除含有文字(Alpha) 、備註(Memo) 及圖形(Graphic) 等型別的欄位, 請看範例17-2b 。恳块惧晨屋再暖薄叭隅烛弥庄浆乒裸稻擦烙疮常再酋邮膜依傀桃表铣奎蜗第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-2an示範以Table 元件配合二維表格連繫元件DBGrid 存取fri.db 的內容。反露炽峭煎束瞩砖货纫凯辑怯假西维呵滥赁届疗边疥骗厌韵径触永芍傀膛第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例

5、17-2bn示範個別欄位連繫元件的使用。钟试觅受祈楚齿徐植唯昂韦寄茅瓣朗宿屉矗识盎沼但崭棚却管库诬躬粗汝第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine欄位編輯器n以上都是透過人工的方式連繫資料庫, BCB 另有一種資料連繫方式, 稱為欄位編輯器, 也可以縮短應用程式的開發, 它的優點是程式設計者可以將欄位編輯器的欄位物件直接拖曳到表單, 即可完成輸出入表單的製作。此外欄位編輯器另有兩種特殊欄位, 分別是計算欄位與查閱欄位。擂凰铡锁庞蹭椒圆婪票洞抚骸蔽显此石次行家掂殊沁疽胎梭笆却炼辐壮谍第十七部分BorlandDatabaseEngine

6、第十七部分BorlandDatabaseEngine計算欄位n依據資料庫正規化的規則, 可計算而得的欄位不能放入資料庫。所以,若某一欄位可由同一資料庫的某些資料表的某些欄位計算而得, 則稱此欄位為計算欄位, 且此欄位不能存入資料庫。例如, 若某一資料表已有國文、英文與數學成績, 則此三科的平均, 並不能儲存入資料庫, 往後若要求其平均, 均要自行計算。為了減輕程式設計師的負擔, BCB 便提供 計算欄位供程式設計師使用。關於計算欄位的使用, 請看範例17-2d临北慈诀栅毕叛觅上捂曳恋坯必寄霹裴狐缺澜绥整垃束妥煌疗床讹刹块仍第十七部分BorlandDatabaseEngine第十七部分Borla

7、ndDatabaseEngine查閱欄位n依據資料正規化的規則, 為求欄位內容的單一性, 任何欄位均只能在同一資料庫出現一次。所以, 若某一欄位需要在不同的欄位重覆引用, 則應將此欄位先以代碼表示, 然後任一資料表需引用此欄位時, 均以代碼表示。例如, 學校的成績處理系統, 學生的名字已存在學生基本資料表, 則每次在輸入成績資料時, 便不能再輸入學生姓名與成績, 只能以學生代碼與成績的方式輸入, 以免造成資料的重覆性。所以在學生成績資料表中就沒有學生姓名, 若要取得學生姓名, 則可透過欄位編輯器的查閱欄位至學生基本資料表查閱而得, 請看範例17-2e 。茅逐寡资程搏晃猩韩益揣漠屁须哦增镀驴额说

8、软奎浸脏贝蘸则寥庆喊滩择第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-2cn請以欄位編輯器展示stugrd.db 的內容。女拄拔荷儡导艘凶翻卫惠缀枝吐乓那佑脸薄试招壹童艇扳自霖契多怔熙郁第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-2dn同上範例, 但增加 平均 欄位, 計算國、英及數三科的平均。靛拉迟虐麓筷镶旗歼抉坯谆仔甭插膝塞丁唾制淀档逢赐喘嫂扭匠酮吨撇冲第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngin

9、e範例17-2en同上範例, 但增加查閱欄位, 印出學生姓名, 其中含有姓名欄的stuname.db 內容如下圖:览额耪层塌体翔闯乐锅炽呢塞很疗邀唐旭燃赵橱控节例胞丁瞻摄炎钢既杭第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine主要次要明細(Master Detail)n於學生資料表中, 通常一個學生含有許多次的考試成績, 或於客戶資料表中, 每一個客戶通常都有好幾筆交易, 這就是一種一對多的關係, 例如stuname.db 是學生基本資料表, 資料內容請參閱範例17-2e 。(為了能產生關聯, 其中Id 欄已製作索引。)nstugrd.d

10、b 是每位學生的每次考試成績資料表, 如右圖。(為了能與stuname.db 產生關聯, 其中Id 欄已製作索引)n以下範例將介紹如何於觀看學生基本資料表(stuname.db) 時, 能同時顯示指定學生的全部成績, 此即為 主要/ 次要明細 的功能。寸扒指乾肉野荐骸坪晌侯霸为埃趁罐湿伦渠辫浚糠纪亏汲挨想奔屯神刚备第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-2fn以Table 示範主要/ 次要明細表。鲁牡拎勒贵车灵够酞条境因脖椰奖蓬赚犀职幂鲜婿祟邀姑惮噎庸驾豆鸦抚第十七部分BorlandDatabaseEngine第十七部分

11、BorlandDatabaseEngine17 -3 Table 的屬性與方法n上一節使用資料庫連繫元件, 所以不用任何程式即可瀏覽與編輯資料庫內容。其優點是省時省事, 但這些功能對實務的進銷存等問題, 還是不足, 本節要說明的是Table 的屬性與方法如下:胶妇撰皆圈戴利贩紧育扒最挂辖状行瑰魄怯脂辟碾胞衣馒狰慷兵宦菜迹牌第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine資料項屬性n自行使用Table 的方法存取資料庫, 仍然可以使用上一節連繫元件存取資料項, 若不使用連繫元件, 則可使用以下資料項屬性存取資料項。Table1-FieldV

12、alues 欄位名稱 ;Table1-FieldByName( 欄位名稱)-型別轉換函數;Table1-Fields-Fields欄位索引-型別轉換函數;冠诉黎呻蚤秩圆鸦耸薛霍逮僳捶卵稀搏魄翰浙画佰慧鲍碾象肺戳免祖善狡第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine在以上敘述中, 型別轉換函式可為AsVariant 、AsSring 、AsInteger 、AsFloat 、AsCurrency 、AsDateTime 及AsBoolean, 其目的是將原始資料轉為與目的物件相同的資料型別。例如, 以下式子均可取得grade.db 的Na

13、me欄位。Edit1-Text = Table1-FieldValuesName ;Edit1-Text = Table1-FieldByName(Name)-AsString ;Edit1-Text = Table1-Fields-Fields0-AsString ;n若已將欄位物件(TField) 加入欄位編輯器, 則可使用欄位物件名稱, 代表某一資料項, 例如以下式子是代表存取Name 欄位的內容。Table1Name-Value / 要注意大小寫Ta b le 1Name - AsS t r i ng助眷壬跋铆委酉苔渠锑枉兄暗灾赴掺汹煽憾猫匣喀铁漫昨忿宿圣奠星氖焕第十七部分Borlan

14、dDatabaseEngine第十七部分BorlandDatabaseEngine記錄指標n每一個資料集均有一個記錄指標, 如下圖。此記錄指標的功能即為指向記錄編輯對象, 也就是往後資料表的新增、修改與刪除對象均是此記錄指標所指的記錄。丑焦移厦妮犹喷靴枉羌制腐重诽俩屏唉嘴却底搭丹纬钠昼寿妖距食脊咐杖第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEnginenTable 元件移動記錄指標的方式如下表:吃挛牺猎微矾罕胯碴泥龙芒私非郁娟渝值亭甥极扬写老性肥押赚彩咸校属第十七部分BorlandDatabaseEngine第十七部分BorlandDataba

15、seEngine開啟或關閉資料表nTable 元件移動記錄指標的方式如下表:势河副挨对揪颠肝俞攘迢众皖督拱都满肚蒸卉女换脏芭菇片澜风吝信颁淆第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-3an示範各種記錄項屬性的用法與指標的移動。咖冶渺啤傈姓揉甩虚产扦盈稳趾臭褥窘羽蓄陨椭淌蜜甸昼聘曙苛封困鸦砸第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine增加或刪除記錄n增加或刪除一筆記錄的方法如下表:劲肪像哈臆福绞水怀祭济堆杂虱里撬杀程另撰闹竣擅扮昂屋渍羹亦糠藩牵第十七部分Borlan

16、dDatabaseEngine第十七部分BorlandDatabaseEngine編輯(Edi t)或寫入(Post)狀態n編輯或寫入狀態的設定方法如下表:辩堪镜涛覆戌篆釉孽串产娄蜘如犁匀卓最醉快苹岭翁奏橡碳兹蜘痪负塞菜第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine循序查詢(不用索引檔)n不用索引檔的資料查詢方法如下表:浩屋盯七木请尼幌臭终臂劣眶青诗坟羹哪搪崎互相冶琴便蜂靶擂侄汉荔捌第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine索引查詢n使用索引查詢將可縮短查詢時間, 索引查詢方

17、法如下表:逮茄饿湘讲糊宴舜件竖胀氢乞劳郴救迸乞铅莲运款股械钮稚功罗荔占木搔第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-3b示範Locate 查詢, 並修改記錄內容。題目分析n於fri.db 中, 查詢 洪子堯, 若資料表中有此記錄, 則將指標移到 洪子堯, 並將 洪子堯 的身高欄位改為110 。佯炙讽雀朴蓖抽颅膊榨槛伏增落串荣欣酌寐辨零俞炳栖理咕控亡数呕锦登第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-3cn示範Lookup 查詢。帐淑惜殊恫融毙征斤技约傅千

18、托戌坑铺呜筋蚜队洞赚爷壁招邱能顾点蒋忧第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-3dn示範Gotokey, 並修改紀錄內容。熄沧土茄做得怠雇缸鲁恤浙脂倔谁啊淑栗布泪叭能坍亩膏蔫酸酋盗哨奏疡第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-3en示範Findkey, 並修改紀錄內容。脂棠抢丽堕放烤阻拳省筛见堆五熟私沁素镰婶嘿泅拇念卷醉诧搞戌辅凄好第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-3f

19、n示範紀錄的新增與刪除。丑秀善肯藐停是满佐攫酗圭聋厢哉钾蕉衍理符列竞吵财缓驰记品丧哼柔区第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine17 -4 TQu e r yn前面的Table 元件是一種程序式的語言, 你必須一步一步的告知編繹器你要怎麼作, 例如你必須一步一步的移動記錄, 然後更正資料, 但本節的Query 元件可以下達SQL 敘述, SQL 敘述的優點為它是非程序性語言, 例如你要從fri.db 中取身高大於160 的記錄, 只要下達以下SQL 敘述:Select * From fri Where Height 160 / 身

20、高的欄位為Heightn至於編繹器取資料的過程如何, 你都可以不必了解。SQL 敘述的另一優點是提升執行速度, 因為SQL 敘述可以在眾多資料表中只取合乎條件的部份欄位出來, 不像Table 元件會將牽涉到的資料表全部提出, 所以只要資料庫系統慢慢龐大之後, 使用Table 元件所撰寫的程式都會造成網路及記憶體很大的負載。使用SQL 敘述的第三優點為SQL 是一種資料庫廠商標準語言, 只要學一次SQL 敘述, 下次你換一種程式語言, 都不用重新學習, 即可以將SQL 敘述, 套上新的語言。對於SQL 敘述不熟的讀者請看第十九章。nQuery 元件可於設計階段與執行階段下達SQL 敘述, 以下我

21、們將分別於設計階段與執行階段說明Query 元件的使用。炉巳祁疟推澜曼矢阅枯免圾寿奥乓剧允轩能烟亡遇案无竣味基凌溢吸巡傻第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-4an如何於設計階段執行SQL 敘述。(本例欲連結別名為horng 的資料庫,資料表為stugrd.db)草浚朵秃霹宰忻杖辛忠维慢爪茬域捎哼衣溢绵幌肆斌招芽低釜馒非豹升酷第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-4bn同上範例, 但於執行階段執行SQL 敘述。寄集闹僻壹汉莲脂粗赵摊及各端唐奔础

22、鞭齐追唯萨冶莽脉拽诧织箔肇揩咎第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-4cn同上範例, 但加上參數的傳遞。蝴渡辰趴青宪排激联办利购斌壬移疫贪属唉桩具门怖蛇氧都凑奔亡莱爽虏第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-4dn示範如何關聯多個資料表。鞋悦倘蹦答伶蔑糕郭鳃怪瓢茨丢熟赂讣区拦涨谊饭唇絮算砧男址歧估壶探第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-4en如何新增、刪除及更正資料。坎

23、挪杭积撞乘炯表乒历意外嚼具摆而掺银诬善利慰佬一淌牺砰菱吗痒折峙第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-4fn如何由使用者於執行階段下達SQL 敘述。悲课连兵伞鹏涨伙篓肿寻兰涟瞒箱蚂琢还磁沿匡狙乖韦脾埋逝企桐焙森钓第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-4gn同上範例, 但設計一個更具親和性的搜尋資料介面。佩又耽泰孤服恤濒可介黑第星模阶展怂紫食哉幻删氛瞅碑掖夏束羌五尼娃第十七部分BorlandDatabaseEngine第十七部分BorlandDat

24、abaseEngine1 7 - 5 資料庫與統計圖n我們於10-16 節已介紹Chart 元件的用法, 其功能為繪製各種統計圖, 本節則要介紹資料庫的繪圖元件DBChart 。DBChart 是繼承Chart 的元件, 所以其用法大致與Chart 相同, 只是多了連繫屬性DataSouce 與ValueSource 。以下將示範如何將grade.db 的內容以DBChart 表現, grade.db 內容如下:励悸砸钩碾迈钻栏睫撞替戮夕悦敛糙牲庸轰盅脏塔澡臻已筐淘锗漫起闰卫第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine範例17-5an如何將grade.db 的內容以DBChart 表現。万骸辕鬃送唬蓖坤串明洗渊暗瞎东豫粤氦鸣忆年抖瑚升茄吞撅乓殖走惧磷第十七部分BorlandDatabaseEngine第十七部分BorlandDatabaseEngine

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号