版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Delphi/SQLServer開(kāi)發(fā)與編程13.1Delphi資料庫(kù)應(yīng)用程式設(shè)計(jì)
13.1.1Delphi資料庫(kù)應(yīng)用程式結(jié)構(gòu)Delphi7資料庫(kù)應(yīng)用程式在邏輯上通常由兩部分構(gòu)成:一是資料庫(kù)訪問(wèn)鏈路,二是用戶介面,如圖13.1所示。1.用戶介面用戶介面使用在窗體上放置數(shù)據(jù)顯示/編輯組件的方式來(lái)實(shí)現(xiàn),數(shù)據(jù)顯示/編輯組件在Delphi7組件面板的DataControls頁(yè)中。13.1.1Delphi資料庫(kù)應(yīng)用程式結(jié)構(gòu)2.數(shù)據(jù)源數(shù)據(jù)源組件是數(shù)據(jù)顯示組件和數(shù)據(jù)集組件之間的仲介,數(shù)據(jù)集從資料庫(kù)獲得數(shù)據(jù)後,將其發(fā)送到數(shù)據(jù)源,然後數(shù)據(jù)源將數(shù)據(jù)送到介面上的數(shù)據(jù)顯示組件進(jìn)行顯示。3.數(shù)據(jù)集數(shù)據(jù)集是資料庫(kù)應(yīng)用程式的核心。數(shù)據(jù)集組件保存了一系列從底層的資料庫(kù)取出的記錄。這些記錄的數(shù)據(jù)可以取自一個(gè)數(shù)據(jù)表、一個(gè)數(shù)據(jù)表的若干個(gè)字段、多個(gè)數(shù)據(jù)表的若干字段。4.連接部分不同類型的數(shù)據(jù)集採(cǎi)用不同的機(jī)制連接底層資料庫(kù)。常見(jiàn)的有BDE和ADO方式。5.數(shù)據(jù)模組數(shù)據(jù)模組用於放置資料庫(kù)組件,相當(dāng)於一個(gè)容器。通過(guò)數(shù)據(jù)模組組件來(lái)組織資料庫(kù)組件有以下二個(gè)主要的優(yōu)點(diǎn):一是這些不可視組件不用直接放在窗體上了,簡(jiǎn)化了窗體的設(shè)計(jì)。二是可以對(duì)數(shù)據(jù)庫(kù)相關(guān)組件進(jìn)行統(tǒng)一管理,共用相同的內(nèi)容。13.1.2ADO組件ADO組件位於組件面板的ADO頁(yè),如圖13.2所示。1.ADOConnection組件
ADOConnection組件的主要作用是建立與資料庫(kù)的連接。使用ADO訪問(wèn)資料庫(kù),必須先與其連接。
ADOConnection組件通過(guò)ConnectionString屬性的設(shè)置和操作建立與資料庫(kù)的連接。13.1.2ADO組件(1)向當(dāng)前窗體上添加一個(gè)ADOConnection組件並選中這個(gè)組件,在對(duì)象流覽器中雙擊這個(gè)組件的ConnectionString屬性,彈出如圖13.3所示的對(duì)話框;選中UseConnectionString,單擊
“Build…”按鈕。13.1.2ADO組件(2)系統(tǒng)將彈出“資料鏈接屬性”對(duì)話框,如圖13.4所示。對(duì)於SQLServer2000資料庫(kù),選擇“MicrosoftOLEDBProviderforSQLServer”,單擊“下一步>>”按鈕。13.1.2ADO組件(3)在所出現(xiàn)的如圖13.5所示的“資料鏈接屬性”對(duì)話框的“連接”頁(yè)上輸入資料庫(kù)伺服器名稱、輸入伺服器登錄資訊、選擇資料庫(kù)名稱,然後點(diǎn)擊“測(cè)試”,若所設(shè)置的屬性正確,則將出現(xiàn)如圖13.6所示的測(cè)試連接成功對(duì)話框。13.1.2ADO組件2.ADODataSet組件
ADODataSet組件的主要屬性有ConnectionString、Connection、CommandText和CommandType。(1)ConnectionString屬性ConnectionString屬性用來(lái)指明資料庫(kù)連接資訊。(2)Connection屬性Connection屬性用來(lái)指明ADO組件與資料庫(kù)聯(lián)繫的方式。(3)CommandText屬性CommandText屬性用於存儲(chǔ)SQL語(yǔ)句、數(shù)據(jù)表名或存儲(chǔ)過(guò)程名。13.1.2ADO組件(4)CommandType屬性
CommandType屬性用於指出CommandText中所存儲(chǔ)的命令類型,常用的CommandType屬性值的含義列於表中。常用值含義CmdTextCommandText存儲(chǔ)的是SQL命令CmdTableCommandText存儲(chǔ)的是數(shù)據(jù)表名CmdStoredProcCommandText存儲(chǔ)的是存儲(chǔ)過(guò)程名CmdTableDirectCommandText存儲(chǔ)的是數(shù)據(jù)表名,並且數(shù)據(jù)表所有字段都會(huì)回傳在結(jié)果的數(shù)據(jù)集中。13.1.2ADO組件3.ADOTable組件
ADOTable組件主要用來(lái)從單個(gè)數(shù)據(jù)表中讀取數(shù)據(jù),它的主要屬性有ConnectionString、Connection和TableName。4.ADOQuery組件它的主要屬性有ConnectionString、Connection、DataSource、SQL和Parameters。ConnectionString和Connection屬性的含義與使用同ADODataSet組件。5.ADOStoredProc組件它的主要屬性有ConnectionString、Connection、DataSource、ProcedureName和Parameters。DataSource指出數(shù)據(jù)源名稱,ProcedureName是需執(zhí)行的存儲(chǔ)過(guò)程名,Parameters存儲(chǔ)的是執(zhí)行存儲(chǔ)過(guò)程所需的參數(shù)。6.ADOCommand組件它的主要屬性有ConnectionString、Connection、CommandText、CommandType,這些屬性的含義和使用方法同ADODataSet組件。13.1.3數(shù)據(jù)源組件和數(shù)據(jù)顯示/編輯組件
數(shù)據(jù)源組件數(shù)據(jù)源組件位於組件面板的DataAccess頁(yè)上,如圖13.7所示。數(shù)據(jù)源組件在ADO數(shù)據(jù)集組件(包括ADODataSet、ADOTable、ADOStoredProc和ADOQuery等)與數(shù)據(jù)顯示/編輯組件之間提供了一個(gè)介面,起著兩者之間通信的媒介作用。數(shù)據(jù)源組件的主要屬性是DataSet,用於指出數(shù)據(jù)集。13.1.3數(shù)據(jù)源組件和數(shù)據(jù)顯示/編輯組件2.數(shù)據(jù)顯示/編輯組件組件面板的DataControls頁(yè)中的組件主要用於顯示或編輯數(shù)據(jù)源提供的數(shù)據(jù),如圖13.8所示。常用的數(shù)據(jù)編輯/顯示組件是DBGrid、DBNavigator、DBText、DBEdit、DBMemo和DBImage組件等。1)DBGrid組件DBGrid組件採(cǎi)用網(wǎng)格的方式顯示數(shù)據(jù)表中指定字段的數(shù)據(jù),並能夠讓用戶編輯這些數(shù)據(jù)。表13.2列出了DBGrid組件的主要屬性值及含義。DBGrid組件的事件列於表13.3中。13.1.3數(shù)據(jù)源組件和數(shù)據(jù)顯示/編輯組件屬性含義DataSource該屬性指定DataAccess組件的數(shù)據(jù)源,通過(guò)這個(gè)數(shù)據(jù)源DataControl組件才能訪問(wèn)資料庫(kù)中的數(shù)據(jù)。該屬性一般可以通過(guò)下拉菜單進(jìn)行選擇Columns該屬性是TColumn對(duì)象的集合,該集合中的每一個(gè)對(duì)象均有一個(gè)索引值,用以指定DBGrid中的列和DataSource相聯(lián)系的數(shù)據(jù)集組件中字段的對(duì)應(yīng)關(guān)係FixedColor該屬性指定DBGrid邊框的顏色(滾動(dòng)條的顏色不會(huì)改變)Options該屬性描述了DBGrid的性質(zhì)TitleFont該屬性設(shè)置表格中的標(biāo)題的字體事件名含義OnCellClick該事件在滑鼠選中表中的單元格並釋放滑鼠右鍵時(shí)被觸發(fā)OnColEnter該事件在焦點(diǎn)移向新的單元格的時(shí)候被觸發(fā)OnColExit該事件在焦點(diǎn)離開(kāi)單元格之前被觸發(fā)OnColumnMoved該事件當(dāng)用戶用滑鼠移動(dòng)表格的列時(shí)被觸發(fā)OnDragDrop該事件當(dāng)用戶放下一個(gè)拖動(dòng)的對(duì)象時(shí)被觸發(fā)OnDragOver當(dāng)用戶拖動(dòng)一個(gè)對(duì)象到組件之上時(shí)被觸發(fā)
13.1.3數(shù)據(jù)源組件和數(shù)據(jù)顯示/編輯組件2)DBNavigator組件DBNavigator組件主要用來(lái)執(zhí)行在數(shù)據(jù)集中流覽數(shù)據(jù)和編輯數(shù)據(jù)的操作,如記錄定位、插入記錄、刪除記錄、保存用戶對(duì)記錄的修改等。DBNavigator的外觀見(jiàn)圖13.9,各個(gè)按鈕功能描述見(jiàn)表13.4。提示資訊功能描述Firstrecord資料庫(kù)中的指針位置指向第一條記錄Prio
rrecord使資料庫(kù)中的指針位置指向當(dāng)前位置的前一條記錄Nextrecord使資料庫(kù)中的指針位置指向當(dāng)前位置的後一條記錄Lastrecord使資料庫(kù)中的指針位置指向最後一條記錄Insertrecord向資料庫(kù)中插入一條記錄Deleterecord刪除資料庫(kù)中的一條記錄Editrecord使資料庫(kù)中的記錄處?kù)毒庉嫚顟B(tài)Postrecord提交對(duì)數(shù)據(jù)庫(kù)作的修改Canceledit關(guān)閉編輯狀態(tài),回到流覽狀態(tài)Refreshdata刷新數(shù)據(jù)控制組件中的數(shù)據(jù)13.1.3數(shù)據(jù)源組件和數(shù)據(jù)顯示/編輯組件DBNavigator組件的主要屬性有:(1)DataSource:通過(guò)這個(gè)屬性使本組件與被其控制的數(shù)據(jù)集聯(lián)繫起來(lái)。(2)VisibleButtons:nbFirst、nbPrior、nbNext、nbLast、nblnsert、nbDelete、nbEdit、nbPost、nbCancel、nbRefresh這10個(gè)子屬性分別對(duì)應(yīng)著10個(gè)按鈕,不同的組合使DBNavigator組件顯示出不同的狀態(tài)。(3)Hints:程式運(yùn)行時(shí),滑鼠移至DBNavigator某按鈕時(shí)彈出的提示資訊,通過(guò)單擊Hints屬性右邊的省略號(hào)可以進(jìn)入提示資訊編輯對(duì)話框。(4)ShowHint:為T(mén)rue時(shí),能在運(yùn)行時(shí)刻顯示提示資訊。(5)Visible:決定在運(yùn)行中DBNavigator組件是否可見(jiàn)。3)DBText組件
DBText組件主要用於顯示數(shù)據(jù)集中的字段類型為文本型的字段值,該組件不能用於編輯資料庫(kù)中的數(shù)據(jù)。
DEText的WordWrap屬性設(shè)置為T(mén)rue時(shí),允許當(dāng)所顯示值的長(zhǎng)度超過(guò)DBText設(shè)計(jì)時(shí)的長(zhǎng)度時(shí)折行顯示。13.1.3數(shù)據(jù)源組件和數(shù)據(jù)顯示/編輯組件4)DBEdit組件該組件能顯示和編輯數(shù)據(jù)源中記錄的字段,可以參照DBText組件來(lái)建立DBEdit在資料庫(kù)應(yīng)用程式中的應(yīng)用。5)DBMemo組件在DBGrid中不能顯示數(shù)據(jù)類型為Graph和Memo字段中的內(nèi)容,可以使用DBMemo及DBImage分別顯示字段中的內(nèi)容。6)DBImage組件DBImage組件提供了一種顯示資料庫(kù)中的圖像字段的方法,例如SQLServer的Image類型字段,即可用該組件顯示。表13.5列出了DBImage組件的主要屬性和方法。屬性和方法含義AutoDisplay決定是否在運(yùn)行時(shí)自動(dòng)顯示圖形。Stretch為T(mén)rue時(shí),通過(guò)DBImage組件顯示的圖形將根據(jù)DBImage組件的大小自動(dòng)調(diào)整尺寸。CopyToClipboard該過(guò)程將把當(dāng)前TDBImage組件中顯示的圖形複製到剪貼板上。CutToClipboard該過(guò)程可以把當(dāng)前TDBImage中的圖形剪貼到剪貼板上。LoadPicture該過(guò)程將從一個(gè)檔中加載圖片到當(dāng)前的TDBImage組件中。PasteFromClipboard該過(guò)程將剪貼板上的內(nèi)容粘貼到當(dāng)前TDBImage組件中。13.2設(shè)計(jì)數(shù)據(jù)模組連接資料庫(kù)創(chuàng)建數(shù)據(jù)模組(1)啟動(dòng)Delphi7;(2)在主菜單中選擇file
New
DataModule,將新建數(shù)據(jù)模組的Name屬性置為“DMCP”,如圖13.10所示,此時(shí)將新建一個(gè)空數(shù)據(jù)模組DMCP,如圖13.11所示。13.2設(shè)計(jì)數(shù)據(jù)模組連接資料庫(kù)2.向數(shù)據(jù)模組中添加連接組件(1)在“ADO”組件面板上選擇“ADOConnection”組件,將其放入DMCP;(2)將ADOConnection組件的Name屬性設(shè)置為“ADOCP”,如圖13.12所示;(3)設(shè)置ADOCP的ConnectionString屬性,選擇圖13.12中“ConnectionString”屬性右邊的文本框,點(diǎn)擊按鈕,將出現(xiàn)圖13.13所示的設(shè)置連接串對(duì)話框;13.2設(shè)計(jì)數(shù)據(jù)模組連接資料庫(kù)(4)選擇“UseConnectionString”,單擊“Build…”按鈕;在其中選擇“MicrosoftOLEDBProviderforSQLServer”,單擊“下一步”;(5)在所出現(xiàn)的介面中輸入資料庫(kù)伺服器名、選擇身份認(rèn)證方式、選擇資料庫(kù)CPXS,單擊“確定”。(6)在圖13.12所示的介面中將ADOCP組件的LoginPrompt屬性設(shè)置為False。13.2設(shè)計(jì)數(shù)據(jù)模組連接資料庫(kù)【例13.1】在Delphi7中設(shè)計(jì)程式將XSBOOK資料庫(kù)中BOOK表的所有記錄顯示出來(lái)。設(shè)計(jì)步驟如下:(1)按圖13.15所示設(shè)計(jì)介面:在窗體中放置一個(gè)Label組件,其Caption屬性為“圖書(shū)資訊”;然後在放置1個(gè)ADOConnection、1個(gè)DataSource、1個(gè)ADOTable和1個(gè)DBGrid組件,這4個(gè)組件的屬性按表13.6設(shè)置。組件類型組件名屬性名設(shè)置值A(chǔ)DOConnectionADOConnection1ConnectionString由生成器生成連接字串LoginPromptFalseADOTableADOTable1
ConnectionADOConnection1TableNamexsActiveTrueDataSourceDataSource1DataSetADOTable1DBGridDBGrid1DataSourceDataSource113.2設(shè)計(jì)數(shù)據(jù)模組連接資料庫(kù)(2)單擊運(yùn)行按鈕,運(yùn)行該程式?!纠?3.2】直接在窗體中放置數(shù)據(jù)訪問(wèn)組件,創(chuàng)建一個(gè)簡(jiǎn)單資料庫(kù)應(yīng)用程式。(1)選擇主菜單下的File
New
Application,創(chuàng)建一個(gè)應(yīng)用程式。(2)從DataAccess頁(yè)上將一個(gè)數(shù)據(jù)源組件DataSource拖放到主窗體上。數(shù)據(jù)源組件在組件面板上位置如圖13.16所示。(3)從BDE頁(yè)上將一個(gè)數(shù)據(jù)表組件Table拖放到主窗體上。數(shù)據(jù)表組件在組件面板上位置如圖13.17所示。13.2設(shè)計(jì)數(shù)據(jù)模組連接資料庫(kù)(4)從DataControl頁(yè)上將一個(gè)表格顯示組件DBGrid和一個(gè)數(shù)據(jù)流覽組件DBNavigator拖放到主窗體上。(5)按表13.7設(shè)置各組件對(duì)象的屬性。主窗體如圖13.19所示。組件類型組件名屬性名設(shè)置值窗體(Form)FormDBAppCaption第1個(gè)Delphi資料庫(kù)應(yīng)用
數(shù)據(jù)表(Table)
TabStuDatabaseNameXSCJTableNamexs.dbActiveTrue數(shù)據(jù)源(DataSource)DSStuDataSetTabStu表格顯示(DBGrid)GrdStuDataSourceDSStu數(shù)據(jù)流覽(DBNavigator)NagStuDataSourceDSStu13.2設(shè)計(jì)數(shù)據(jù)模組連接資料庫(kù)(6)運(yùn)行程式。現(xiàn)在就可以直接在DBGrid上添加、修改、刪除數(shù)據(jù)。例13.2所創(chuàng)建的就是一個(gè)基本數(shù)據(jù)維護(hù)的應(yīng)用程式,不用書(shū)寫(xiě)任何程式代碼。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度影視劇制作與發(fā)行合同
- 2025至2030年中國(guó)衣服收集袋數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)真絲男襪數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)框籠數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2031年中國(guó)高效氧化塔行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國(guó)直動(dòng)式不銹鋼電磁閥行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025版棉花育種技術(shù)研發(fā)與應(yīng)用合同4篇
- 二零二五年度房地產(chǎn)買(mǎi)賣合同范本大全4篇
- 二零二五年度棉花產(chǎn)業(yè)供應(yīng)鏈優(yōu)化提升合同4篇
- 二零二四年度醫(yī)療行業(yè)數(shù)據(jù)中心機(jī)房租賃合同
- 燃?xì)饨?jīng)營(yíng)安全重大隱患判定標(biāo)準(zhǔn)課件
- JB-T 8532-2023 脈沖噴吹類袋式除塵器
- 深圳小學(xué)英語(yǔ)單詞表(中英文)
- 護(hù)理質(zhì)量反饋內(nèi)容
- 山東省濟(jì)寧市2023年中考數(shù)學(xué)試題(附真題答案)
- 抖音搜索用戶分析報(bào)告
- 板帶生產(chǎn)工藝熱連軋帶鋼生產(chǎn)
- 鉆孔灌注樁技術(shù)規(guī)范
- 2023-2024學(xué)年北師大版必修二unit 5 humans and nature lesson 3 Race to the pole 教學(xué)設(shè)計(jì)
- 供貨進(jìn)度計(jì)劃
- 彌漫大B細(xì)胞淋巴瘤護(hù)理查房
評(píng)論
0/150
提交評(píng)論