明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

在ASP程序中訪問Access數據庫

[摘要]在基于微軟IIS/PWS的網絡平臺上,通過服務器端運行的ASP程序來訪問后臺數據庫,是一種最常見的模式了。而對于小型的數據庫應用需求,微軟的Access數據庫,應該是與ASP程序配套使用的首選。由于Access數據庫的ODBC驅動程序支持的SQL指令全,執(zhí)行效率高,所以Access后臺數據庫+AS...
在基于微軟IIS/PWS的網絡平臺上,通過服務器端運行的ASP程序來訪問后臺數據庫,是一種最常見的模式了。而對于小型的數據庫應用需求,微軟的Access數據庫,應該是與ASP程序配套使用的首選。由于Access數據庫的ODBC驅動程序支持的SQL指令全,執(zhí)行效率高,所以Access后臺數據庫+ASP服務器端程序+客戶端IE瀏覽器,是一個精練實用高效的組合模式。 

  在這種使用模式中,ASP程序無疑是最重要的,是溝通客戶端和后臺數據庫之間的橋梁。在ASP程序中,通過VB Script,建立對Access數據庫的連接,是客戶能夠訪問后臺數據庫的前提。 

  一、建立Access數據庫連接的常用方法 

  在ASP中建立對Access數據庫連接的一般格式如下: 

     

  它的各步驟及參數意義如下: 

  第一行程序:利用Server對象的MapPath函數,取得要打開數據庫的完整的文件路徑,并存儲在變量DbPath中。這其中,數據庫名是我們需要指定的參數,應該用我們要打開的數據庫的實際名稱替代。如果數據庫名是直接作為常量出現,要用引號將其括起來,并且不能丟掉擴展名。例如數據庫是Test.mdb,則該行程序成為:DbPath=Server.MapPath(“Test.mdb”)。 

  第二行程序:建立一個ADO對象集中的Connection對象,也即連接對象。這是建立數據庫連接的初始步驟。執(zhí)行這行程序后,Conn成為一個連接對象。 

  第三行程序:利用連接對象Conn的Open方法打開一個指定的數據庫。因為我們要打開的是Access數據庫,所以要指定ODBC驅動程序參數,表示要透過Access的ODBC驅動程序來訪問數據庫:driver={Microsoft Access Driver (*.mdb)};。另一個參數dbq= & DbPath,運算后等效于dbq=Server.MapPath(數據庫名) ,是利用了第一行的Server.MapPath(數據庫名)函數,用來指定要打開的數據庫文件。到這里,就已經打開了數據庫名指定的數據庫。如果數據庫名是“test.mdb”,則打開Access數據庫Test.mdb。在這一行里指定的參數,要嚴格按照格式原樣寫出,不能省略或改動,也沒有可變參數。 

  第四行程序:建立一個ADO對象集中的Recordset對象,以便利用Recordset對象操作數據庫(當然,這只是對數據庫操作的多種方式之一)。執(zhí)行這行后,rs就成為一個Recordset對象。 

  第五行程序:利用rs對象的Open方法打開數據庫中的數據表。這其中有四個參數,其意義如下: 

  數據表名或SQL指令串:在這個參數里指定要打開的數據庫內的數據表名稱,或者是用SQL的Select指令串確定的數據表的指定范圍數據,例如,數據庫Test.mdb中有數據表Number,則該參數成為“Number”,注意引號不能丟;若想打開數據表Number中xh字段值小于90的數據記錄,則該參數可能成為如下的形式: 

  “Select * From Number Where xh < 90”。 

  Connection對象:指定已經打開的數據庫的Connection對象,在這里固定是Conn,注意無須引號的。 

  Recordset類型:表示打開數據表的方式,有四種選擇。數字0表示只讀方式,且當前記錄只能下移;數字1表示可讀寫方式,當前記錄可自由上下移動,但不能及時看到別的用戶建立的新記錄,除非重新啟動;數字2表示可讀寫方式,當前記錄可自由移動,而且可以及時看到別的用戶增加的新記錄;數字3表示只讀方式,但當前記錄可以自由移動。一般選擇2為好,除非為了禁止數據被修改。 

  鎖定類型:這個參數指定數據庫的鎖定功能。因為網絡上的數據庫都是多用戶的,很可能同時有多個用戶在操作數據庫。為了避免錯誤,讓同一時間只可能有一個用戶修改數據,就要用鎖定功能。有四種選擇:數字1表示只讀方式鎖定,用戶不能更改數據;數字2表示悲觀鎖定,當一個用戶用rs對象開始修改數據時就鎖定數據庫,直到用戶用rs.Update更新記錄后,才解除鎖定;數字3表示樂觀鎖定,只有在數據寫入數據庫中時候才鎖定,不保險,慎用!數字4表示批次樂觀鎖定,只有在使用rs.UpdateBatch成批更新數據時候才鎖定數據記錄。屬于很少使用的。一般地,使用悲觀鎖定比較安全,但是效率要低些。 
[page_break]  二、使用Recordset對象操作數據 

  用上面的方法打開數據庫,是利用了Recordset對象建立的數據庫連接,然后的對數據操作,也要使用該對象。 

  用rs.open “數據表名”,Conn,2,2 方式打開數據表,就可以方便的對數據進行操作: 

  常見的操作對象: 

    rs.addnew :添加一個新記錄在數據表末尾。 

    rs.delete :刪除當前記錄。 

    rs.eof :判斷是否已過最后記錄。 

    rs.bof :判斷是否移過首記錄。 

    rs.update :數據修改生效。 

    rs(“字段名”):當前記錄指定字段的值。 

  從數據表中提取數據:用x=rs(“字段名”)的格式,提取數據表中當前記錄指定字段的值。 

  向數據表中填入或修改數據:用rs(“字段名”)=數據值或變量的方式,修改當前記錄指定字段的值。 

  三、使用SQL指令操作數據庫 

  在使用SQL指令對數據庫進行操作時,要用如下方式打開數據庫和操作: 

     

  四、使用DSN連接數據庫 

  在以上連接數據庫的方式中,都是在程序中指定數據庫,指定ODBC驅動程序。如果數據源有變化,就需要修改程序。如果在系統(tǒng)級別上,預先定義好數據源DSN,就可以避免這個麻煩。 

  在定義DSN的過程中,就已經指定好了數據源需要的ODBC驅動程序,也指定好了數據庫文件的實際路徑和名字,我們在程序中,只需要引用預先定義的數據源名DSN即可。 

  設定義好的DSN為test,則打開數據庫的方式為: 

     

  五、結束語 

  在ASP程序中,建立數據庫的連接和訪問數據庫,有很多方式和技術細節(jié),在此難以一一詳述。實際上,對SQL Server數據庫,DBF數據庫,文本文件,電子表格文件等,也都可以很方便的打開和訪問,與對Access數據庫的訪問大同小異而已。如果說方便,Access應該是首選。如果考慮安全保密性,SQL數據庫更好些。使用系統(tǒng)數據源DSN的方式建立對數據庫的連接,具有更大的靈活性,也更簡便些。