• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      用Delphi的ADO組件建立動態(tài)數(shù)據(jù)庫連接

      2018-01-03 12:34:50柴鎖柱柴華
      山東工業(yè)技術(shù) 2018年24期
      關(guān)鍵詞:數(shù)據(jù)庫

      柴鎖柱 柴華

      摘 要:在使用Delphi自帶的ADO組件開發(fā)Access數(shù)據(jù)庫應(yīng)用程序時,會遇到由于程序存放路徑不同導(dǎo)致數(shù)據(jù)庫不能正常連接,致使程序不能正常運行,此問題采用動態(tài)鏈接Access數(shù)據(jù)庫的方法可以解決;結(jié)合具體代碼闡述了用ADO組件動態(tài)鏈接Access加密數(shù)據(jù)庫的方法和關(guān)鍵技術(shù),使得應(yīng)用程序可以任何路徑都能正常運行。

      關(guān)鍵詞:Delphi;數(shù)據(jù)庫;Access;ADO組件

      DOI:10.16640/j.cnki.37-1222/t.2018.24.100

      1 引言

      數(shù)據(jù)庫已被廣泛應(yīng)用在各種管理系統(tǒng)中,例如用在倉房糧溫監(jiān)控系統(tǒng)中已得到應(yīng)用[1]。數(shù)據(jù)庫系統(tǒng)的種類很多,大型數(shù)據(jù)庫如MSSQL Sever、Oracle,小型數(shù)據(jù)庫如Access,在應(yīng)用中應(yīng)根據(jù)需要選擇合適的數(shù)據(jù)庫。開發(fā)數(shù)據(jù)庫應(yīng)用程序的工具有很多,如VB、VC和Delphi等,其中Delphi是由Borland公司推出的可視化集成開發(fā)環(huán)境,是一種方便、快捷的Windows應(yīng)用程序開發(fā)工具,具有簡單、高效和功能強大的特點,采用基于窗體和面向?qū)ο蟪绦蛟O(shè)計的方法,具有強大的數(shù)據(jù)庫支持,用組件庫封裝了豐富的Windows操作,適合開發(fā)數(shù)據(jù)庫方面的應(yīng)用程序,支持多種數(shù)據(jù)庫結(jié)構(gòu),從客戶機/服務(wù)器模式到多層數(shù)據(jù)庫結(jié)構(gòu)模式,先進(jìn)的數(shù)據(jù)庫引擎,高效的數(shù)據(jù)分析手段和提供大量的企業(yè)組件,采用Delphi開發(fā)數(shù)據(jù)庫應(yīng)用程序成為許多程序員的選擇。在應(yīng)用程序開發(fā)過程中,使用TADOConnection組件連接已經(jīng)設(shè)計好的Access數(shù)據(jù)庫既方便又快捷,但是會遇到一些問題:(1)一般在編程時TADOConnection組件的ConnectionString屬性已經(jīng)確定,當(dāng)將程序移植到其它計算機運行時,由于環(huán)境的改變會導(dǎo)致程序無法正常運行;(2)用戶可以通過Mircosoft Access軟件直接操作數(shù)據(jù)庫,這可能造成數(shù)據(jù)庫的破壞。為了解決第二個問題,需要對數(shù)據(jù)庫加密;為了解決第一個問題,應(yīng)用程序需要動態(tài)修改TADOConnection組件的ConnectionString屬性,對加密的數(shù)據(jù)庫進(jìn)行連接。以Access數(shù)據(jù)庫為例,闡述使用Delphi的ADO組件開發(fā)數(shù)據(jù)庫應(yīng)用程序的方法、步驟和關(guān)鍵問題,以完成對數(shù)據(jù)庫的訪問和操作。

      2 ADO組件

      ADO(ActiveX Data Object)是微軟公司推出的一套數(shù)據(jù)庫訪問規(guī)范。它使應(yīng)用程序能夠通過一種稱為OLE DB提供者(OLE DB Provider)的驅(qū)動程序訪問和操作數(shù)據(jù)庫。而OLE DB 是一個基于COM的數(shù)據(jù)庫訪問規(guī)則和API函數(shù)的集合,并經(jīng)過了簡化。ADO以ActiveX的形式封裝了OLE DB,以提供一個更加友好方便的使用方式。使用ADO的好處,一是速度快,占用內(nèi)存少,因為它直接使用API函數(shù);二是支持基于Web應(yīng)用開發(fā);三是支持RDS(Remote Data Service),即首先將數(shù)據(jù)從服務(wù)器移動到客戶端或Web頁上,等到在客戶端或Web頁上將數(shù)據(jù)修改后,再將數(shù)據(jù)回傳到服務(wù)器上。Delphi 7開發(fā)工具自帶ADO組件[2],為連接多種數(shù)據(jù)庫提供了方便快捷的方法,這些組件可以分為兩大類:連接類型和訪問類型。ADO連接組件TADOConnection屬于連接類型,用來建立一個數(shù)據(jù)庫連接,為訪問類型的ADO組件提供數(shù)據(jù)庫連接,修改TADOConnection組件的ConnectionString屬性可以連接不同的數(shù)據(jù)庫。這樣ADO數(shù)據(jù)集組件就可以通過ADO連接組件訪問數(shù)據(jù)庫中的數(shù)據(jù)表。

      3 用ADO組件連接Access數(shù)據(jù)庫

      結(jié)合具體代碼闡述使用ADO組件連接并訪問加密Access數(shù)據(jù)庫的方法步驟及關(guān)鍵技術(shù)要點。

      (1)創(chuàng)建一個文件夾,命名為“project”,用來存放項目的源代碼;在“project” 文件夾下創(chuàng)建子文件夾,命名為“DataBase”,用于存放Access數(shù)據(jù)庫。

      (2)用Access創(chuàng)建一個數(shù)據(jù)庫,命名為“db1.mdb”,保存在DataBase文件夾中;對db1.mdb數(shù)據(jù)庫加密,假設(shè)密碼為“123456”,創(chuàng)建數(shù)據(jù)表,命名為“Table1”,為數(shù)據(jù)表添加字段并添加數(shù)據(jù),不再贅述。

      (3)打開Delphi集成開發(fā)環(huán)境,創(chuàng)建一個工程保存在project文件夾下,項目命名為“project1”;新建窗體命名為“Form1”。

      (4)在窗體Form1上添加TADOConnection組件,命名為“ADOConnection1

      ”,TADOConnection組件為Delphi自帶的組件,用于連接數(shù)據(jù)庫。需要修改TADOConnection組件的ConnectionString屬性,以指定需要連接的數(shù)據(jù)庫。 ADOConnection1的LoginPrompt屬性設(shè)置為“False”,使得程序運行時不再出現(xiàn)數(shù)據(jù)庫登錄窗口。因為ConnectionString屬性需要在程序運行過程中設(shè)置,所以ADOConnection1的Connected屬性設(shè)置為“False”。

      (5)在窗體Form1上添加TADOQuery組件,命名為“ADOQuery1”

      ,TADOQuery組件為Delphi自帶的組件,用來訪問數(shù)據(jù)表,為TDataSource組件提供數(shù)據(jù)集。需要修改ADOQuery1的SQL屬性以訪問數(shù)據(jù)庫中的數(shù)據(jù)表,修改ADOQuery1的Connection屬性以連接數(shù)據(jù)庫。因為還沒有連接數(shù)據(jù)庫,所以ADOQuery1的Active屬性設(shè)置為“False”。ADOQuery1的SQL屬性設(shè)置為“select * from table1”。ADOQuery1的Connection屬性設(shè)置為“ADOConnection1”。

      (6)在窗體Form1上添加TDataSource組件,命名為“DataSource1”

      ,TDataSource組件為Delphi自帶的組件,為DBGrid1提供數(shù)據(jù)源。需要修改DataSource1的DateSet屬性。DataSource1的DateSet屬性設(shè)置為“ADOQuery1”。

      (7)在窗體Form1上添加TDBGrid組件,命名為“DBGrid1”,TDBGrid組件為Delphi自帶的組件,用于顯示數(shù)據(jù)。需要修改DBGrid1的DataSource屬性,設(shè)置為DataSource1。

      (9)編譯并運行應(yīng)用程序,可以正常訪問數(shù)據(jù)庫顯示數(shù)據(jù)表的記錄信息。

      (10)將project1.exe文件和DataBase文件夾一起復(fù)制,粘貼到另外機器的任何一個文件夾下測試,能夠正常運行。

      4 關(guān)鍵技術(shù)問題

      (1)創(chuàng)建Access數(shù)據(jù)庫后設(shè)置密碼,可以防止用戶Access軟件打開數(shù)據(jù)庫文件,避免了因用戶使用Access軟件直接修改數(shù)據(jù)庫而造成數(shù)據(jù)被損壞的情況發(fā)生。

      (2)使用程序代碼修改ADOConnection1組件的ConnectionString屬性,主要是采用相對路徑訪問數(shù)據(jù)庫,指定數(shù)據(jù)庫訪問的密碼。為了使開發(fā)的應(yīng)用程序能夠在不同機器不同路徑下都能運行,對數(shù)據(jù)庫進(jìn)行訪問可以采用相對路徑的方法,程序代碼參見'DataBase\db1.mdb;'這一部分。

      5 結(jié)束語

      實踐證明,在Delphi 中使用ADO組件開發(fā)Access數(shù)據(jù)庫應(yīng)用程序,給Access數(shù)據(jù)庫加密,可以有效防止用戶直接通過Access軟件修改修據(jù)庫而造成數(shù)據(jù)庫損壞;動態(tài)修改ADOConnection1組件的ConnectionString屬性,以實現(xiàn)動態(tài)連接數(shù)據(jù)庫,使應(yīng)用程序可以在不同環(huán)境下運行。串口通信程序,在Delphi 7中使用ADO組件開發(fā)Access數(shù)據(jù)庫應(yīng)用程序,具有簡單方便、開發(fā)效率高的特點,結(jié)合Delphi的第三方組件CPort串口組件已經(jīng)在綜合項目的開發(fā)中得到應(yīng)用[3],應(yīng)用效果令人滿意。在Delphi 中利用ADO組件開發(fā)Access數(shù)據(jù)庫應(yīng)用程序的方法,對開發(fā)Delphi應(yīng)用程序?qū)嵺`具有一定的指導(dǎo)意義。

      參考文獻(xiàn):

      [1]柴鎖柱.基于RS485的倉房糧溫監(jiān)控網(wǎng)絡(luò)通信系統(tǒng)[J].滄州師范學(xué)院學(xué)報,2014,30(01):69-72.

      [2]張大年,廖智勇,劉劍鋒.Delphi數(shù)據(jù)庫應(yīng)用開發(fā)技術(shù)與實例[M].2002(01):428-472.

      [3]柴鎖柱,柴華.在Delphi中用CPort組件開發(fā)串口通信程序[J].內(nèi)江科技,2015(05):49-50.

      作者簡介:柴鎖柱(1963-),男,河北滄州人,本科,教授,研究方向:嵌入式系統(tǒng)和計算機控制技術(shù)。

      猜你喜歡
      數(shù)據(jù)庫
      數(shù)據(jù)庫
      財經(jīng)(2017年15期)2017-07-03 22:40:49
      數(shù)據(jù)庫
      財經(jīng)(2017年2期)2017-03-10 14:35:35
      兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
      數(shù)據(jù)庫
      財經(jīng)(2016年15期)2016-06-03 07:38:02
      數(shù)據(jù)庫
      財經(jīng)(2016年3期)2016-03-07 07:44:46
      數(shù)據(jù)庫
      財經(jīng)(2016年6期)2016-02-24 07:41:51
      數(shù)據(jù)庫
      財經(jīng)(2015年3期)2015-06-09 17:41:31
      數(shù)據(jù)庫
      財經(jīng)(2014年21期)2014-08-18 01:50:18
      數(shù)據(jù)庫
      財經(jīng)(2014年6期)2014-03-12 08:28:19
      數(shù)據(jù)庫
      財經(jīng)(2013年6期)2013-04-29 17:59:30
      南昌县| 大渡口区| 行唐县| 锡林郭勒盟| 南雄市| 桐庐县| 富阳市| 呼伦贝尔市| 文水县| 昭通市| 叙永县| 石楼县| 怀宁县| 赤城县| 台山市| 德令哈市| 新丰县| 马关县| 黔南| 红河县| 桂东县| 咸丰县| 安宁市| 房山区| 长乐市| 正安县| 同仁县| 乌海市| 苗栗市| 化德县| 巴里| 海宁市| 墨玉县| 社旗县| 伊通| 新郑市| 中西区| 中牟县| 萝北县| 青神县| 友谊县|