a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Delphi > 正文

Delphi數(shù)據(jù)庫編程教程(三)

2019-11-18 18:38:55
字體:
供稿:網(wǎng)友
 

第三節(jié) ADO(ActiveX Data Objects)編程模型

      如文章“Delphi中引入ADO”所敘述的,ADO是一套COM(Component Object Model組件對象模型)組件(DLLs),它允許你像訪問電子郵件和文件系統(tǒng)一樣訪問數(shù)據(jù)庫。使用ADO編寫的應(yīng)用程序不需要BDE。為了用ADO訪問各種數(shù)據(jù)庫,你需要有ADO/OLE DB(Object Linking and Embedding對象鏈接和嵌入)庫。使用ADO所需要的可能在你的計算機(jī)中已存在:這些文件被微軟作為Windows98/2000的一部分分發(fā)。如果你使用的是Windows95或NT,你可能需要分發(fā)或安裝ADO引擎。Delphi 5的CD中包含有MDAC-Microsoft Data access Components(微軟數(shù)據(jù)訪問組件)的安裝文件。你應(yīng)該確定使用的是MDAC的最新版本,它可以從微軟的官方網(wǎng)站獲得。MDAC是使Universal Data Access(通用數(shù)據(jù)訪問)起作用的關(guān)鍵技術(shù)。它們包括ActiveX Data Objects(ADO)、OLE DB和Open Database Connectivity(ODBC)。

      注:為了在Windows95的計算機(jī)上正確安裝,MDAC需要DCOM95(Distributed Component Object Model分布式組件對象模型)已被安裝。為了正確的注冊,MDAC所安裝的組件依賴于DCOM95所安裝的DLLs。注意,DCOM95在NT4.0中是不需要的。在某些情況下,DCOM不需要安裝在運行Windows的計算機(jī)中。但如果沒有被安裝,安裝MDAC前應(yīng)安裝DCOM98。

       沒有必要過多的討論OLE DB和ADO,讓我們轉(zhuǎn)移到更實際的問題上。

      ADO 對象ADO Objects

      ADO編程模型圍繞著幾個ADO對象而建立,這些對象為訪問各種數(shù)據(jù)員提供多種方法。這些對象提供連接數(shù)據(jù)源、查詢和更新記錄集、報告錯誤的功能。Delphi通過幾個VCL組件通過訪問這些對象的封裝組件。讓我們看一下與ADO工作的對象是那些:

      Connection (連接)對象,通過連接字符串與數(shù)據(jù)源連接。在BDE/Delphi中,連接對象是數(shù)據(jù)庫組件和會話(session)組件的結(jié)合。

      Command (命令)對象,使我們能操作數(shù)據(jù)源。它描繪一個命令(也視為查詢或敘述),能處理對數(shù)據(jù)庫數(shù)據(jù)的增加、刪除、查詢或更新。

      Recordset (記錄集)對象,是查詢(Query)命令的結(jié)果。你可以認(rèn)為Recordset 是一個Delphi表(Table)組件或查詢(Query)組件。Recordset 返回的每一行都包含多個字段(Field)對象。

      其他幾個在ADO模型中存在的對象有:字段(Field)對象、參數(shù)(Parameter)對象和錯誤(Error)對象—在接下來的章節(jié)中將會回過來談到它們。

 

第四節(jié)  用ADOExPRess連接數(shù)據(jù)庫

      在對ADOExpress集合的每個組件進(jìn)行簡要的解釋之前,讓我們首先了解一下怎樣連接到Access數(shù)據(jù)庫。當(dāng)然,當(dāng)然我們將連接到我們的樣例數(shù)據(jù)庫—AboutDelphi.mdb(譯者加:在上一章中所建立的數(shù)據(jù)庫)。

      Delphi(5)主要通過組件面板ADO頁上的ADOExpress組件實現(xiàn)對ADO的支持。幾個其他的數(shù)據(jù)庫使能組件在本課程中將被使用。目前,我們將主要關(guān)注用ADO訪問Access數(shù)據(jù)庫所需的最小的組件集。

      運行Delphi,建立一個新的帶有空的表單的應(yīng)用程序。

      為了能通過ADO和Delphi訪問Access數(shù)據(jù)庫的數(shù)據(jù),你必須在你的工程中至少增加三個數(shù)據(jù)可視(data aware)組件。首先是數(shù)據(jù)控制(DataControls)組件頁的DBGrid—用于瀏覽從一個表格或通過查詢獲得的記錄。其次是DataSource(DataAccess數(shù)據(jù)訪問頁),用于連接數(shù)據(jù)集和表單上的DBGrid組件,從而實現(xiàn)潛在數(shù)據(jù)集數(shù)據(jù)的現(xiàn)實、導(dǎo)航(navigation)和編輯。最后是ADOTable(ADO頁),它描繪從ADO數(shù)據(jù)庫獲得的一個表。把它們都拖放在表單(Form)上,組件名都取默認(rèn)值。這時表單應(yīng)如圖所示:

                                     

      如果你現(xiàn)在運行程序,Grid中沒有數(shù)據(jù)顯示—當(dāng)然,因為我們沒有真正地連到數(shù)據(jù)庫上。注意另一點:僅僅Grid使可見的,其他兩個組件是不可視控件(controls-unvisible)。

      組件間的連接(Link between components)

       為了顯示數(shù)據(jù)庫中的數(shù)據(jù),我們必須把三個組件連在一起。在對象監(jiān)視器(Object Inspector)中進(jìn)行如下設(shè)置:    

       DBGrid1.DataSource = DataSource1;
       DataSource1.DataSet = ADOTable1 ;

       現(xiàn)在我們到了比較難的部分了,為了真正從數(shù)據(jù)庫中獲得數(shù)據(jù),我們必須建立一個連接字符串(ConnectionString)。這個字符串指出了數(shù)據(jù)庫的物理存儲位置和訪問方式。當(dāng)你雙擊AdoTable組件的ConnectionString(連接字符串)屬性的省略號按鈕,你將得到如下的對話框:

Connection String
      建立一個連接字符串時,我們有兩種選擇:使用Data Link File(數(shù)據(jù)連接文件)(.UDL)或手工建立一個連接字符串。現(xiàn)在我們手工建立它,點擊Build按鈕—彈出Data Link Properties(數(shù)據(jù)連接屬性)對話框。這個對話框有4頁。Provider(提供者)頁允許你指定提供者—這里選擇Microsoft Jet 4.0 OLE DB Provider。點擊Next(下一個)按鈕將引導(dǎo)我們進(jìn)入第二頁:Connection(連接)。選擇省略號按鈕瀏覽找到我們的數(shù)據(jù)庫(AboutDelphi.mdb)。可以點擊Test Connection(測試連接)按鈕檢驗是否可以成功連接—應(yīng)該是成功的。其它頁暫時不進(jìn)行設(shè)置。最后,點擊OK關(guān)閉Data Link Properties對話框,再點擊OK關(guān)閉ConnectionString對話框—連接字符串被存儲在ADOTable組件的ConnectionString屬性中。連接字符串已如下所示:
      Provider=Microsoft.Jet.OLEDB.4.0;
      Data Source=C:/!gajba/About/aboutdelphi.mdb;
      Persist Security Info=False
      為了完成設(shè)計,我們必須設(shè)置通過ADOTable組件訪問的表名稱—再一次使用Object Inspector。
      ADOTable1.TableName = applications
      如果你想在設(shè)計時看見數(shù)據(jù)庫的數(shù)據(jù),可使用ADOTable的Active(激活)屬性—設(shè)置它為True。
      哈!如果你已進(jìn)行以上的所有步驟,現(xiàn)在你見看到Applications表僅有一個記錄(行)。當(dāng)你運行應(yīng)用程序時,你甚至能改變數(shù)據(jù)庫的數(shù)據(jù)。當(dāng)然,你不能做更多的是—這是我所能想到的最簡單的ADO的例子。
      現(xiàn)在可以結(jié)束這一部分了。下一章中,我們將討論Delphi提供所有的ADO組件以及它們怎樣與余下的數(shù)據(jù)可視化(data-aware)組件進(jìn)行通訊,從而創(chuàng)建一個功能更強(qiáng)大的Delphi數(shù)據(jù)庫應(yīng)用程序。
 
2002年12月22日 20:14

上一篇:Delphi數(shù)據(jù)庫編程教程

下一篇:如何為Delphi程序添加事件和事件處理器

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 日韩欧美在线免费观看 | 一区二区免费 | 久久综合九九 | 日韩精品一区二区三区中文在线 | 99精品欧美一区二区三区综合在线 | 亚洲一区av在线 | 久草视| 久久综合一区二区 | 欧美9999| 一级免费视频 | 免费福利小视频 | 亚洲二区在线视频 | 久久精品国产一区二区电影 | 欧美级毛片 | 日韩精品网站在线观看 | 国产精品永久 | 色呦呦网址 | 欧美激情一区二区三级高清视频 | 奇米精品一区二区三区在线观看 | 天天插天天射天天干 | 亚洲国产精品一区二区久久 | 综合一区 | 免费观看一区二区三区毛片 | 古风h啪肉1v1摄政王 | 男人的天堂久久 | 精品国产乱码久久久久久1区二区 | 久久久久久久国产 | 精品国产一区二区三区久久影院 | 涩涩涩涩涩| 81精品国产乱码久久久久久 | 欧美精品久久久 | 成人激情视频在线观看 | 亚洲影视一区 | 色激情五月 | 视频在线一区 | 久久小视频 | 91电影在线 | 国产精品一区二区视频 | 精品欧美一区二区三区精品久久 | 盗摄精品av一区二区三区 | 国产精品美女久久久久久免费 |