程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> 在ASP程序中訪問Access數據庫

在ASP程序中訪問Access數據庫

編輯:關於Access數據庫
在基於微軟IIS/PWS的網絡平台上,通過服務器端運行的ASP程序來訪問後台數據庫,是一種最常見的模式了。而對於小型的數據庫應用需求,微軟的Access數據庫,應該是與ASP程序配套使用的首選。 由於Access數據庫的ODBC驅動程序支持的SQL指令全,執行效率高,所以Access後台數據庫+ASP服務器端程序+客戶端IE浏覽器,是一個精練實用高效的組合模式。

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

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

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

    <%

    DbPath=Server.MapPath(數據庫名)

    Set Conn=Server.CreatObject(“ADODB.Connection”)

    Conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=”& DbPath

    Set rs=Server.CreatObject(“ADODB.Recordset”)

    Rs.Open 數據表名或SQL指令,Connection對象,Recordset類型,鎖定類型

    … …

    %>

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

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

  第二行程序:建立一個ADO對象集中的Connection對象,也即連接對象。這是建立數據庫連接的初始步驟。執行這行程序後,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對象操作數據庫(當然,這只是對數據庫操作的多種方式之一)。執行這行後,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成批更新數據時候才鎖定數據記錄。屬於很少使用的。一般地,使用悲觀鎖定比較安全,但是效率要低些。

  二、使用Recordset對象操作數據

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

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

  常見的操作對象:

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

    rs.delete :刪除當前記錄。

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

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

    rs.update :數據修改生效。

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

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

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

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

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

    <%

    DbPath=Server.MapPath(數據庫名)

    Set Conn=Server.CreatObject(“ADODB.Connection”)

    Conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=”& DbPath

    Sql=操作數據庫的指令串

    Conn.Execute sql

    … …

    %>

  四、使用DSN連接數據庫

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

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

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

    <%

    Set Conn=Server.CreatObject(“ADODB.Connection”)

    Conn.Open “DSN=test”

    Set rs=Server.CreatObject(“ADODB.Recordset”)

    Rs.Open 數據表名或SQL指令,Connection對象,Recordset類型,鎖定類型

    … …

    %>

  五、結束語

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