Board logo

標題: [教學] (ASP教學第13篇) 資料庫驅動程式 上篇 [打印本頁]

作者: 小誌    時間: 2010-5-13 00:44     標題: (ASP教學第13篇) 資料庫驅動程式 上篇

現今的網路電子商務免不了要與資料庫扯上關係,這裡所指的資料庫是:Web Server 上的資料庫喔!其實資料庫不就是一個檔案,但是,它是一個結構化儲存資料的格式檔案。其實我們常常在使用資料庫而不自知,怎麼說?你有沒有操作過.mdb 的檔案啊?它就是一個 Access 格式的資料庫檔案。

要存取網路伺服器上的資料庫可是跟我們單機上的操作有很大不同!在ASP網頁中要存取網路伺服器上的資料庫,必須使用存取資料庫的物件 ADO(ActiveX Data Objects), ADO 是存取資料庫物件們的統稱,我們主要用來存取資料庫的物件有下列三種


    在ASP中使用ADO物件就可以存取資料庫了嗎?當然是不行!除了ADO物件外我們還要有ODBC驅動程式,因為我們存取任何一種資料庫都必須有其相對應的ODBC驅動程式,ADO物件才能夠對資料庫的檔案作存取的動作!


資料庫驅動程式
我們存取任何一種資料庫都必須有其相對應的資料庫驅動程式,ADO物件才能夠對資料庫的檔案作存取的動作!

    以上這兩者皆為驅動程式類別,應用程式可藉由此驅動程式介面來存取資料庫的資料,也就是說要使ADO物件可以存取資料庫,就必須安裝相對應之驅動程式,如下圖所示。
[attach]332[/attach]

不同的資料庫驅動程式,存取相對應之資料庫類型
    請不要搞錯了喔!ODBC與OLEDB只是驅動程式們的統稱而已,每一種不同類型的資料庫都擁有自己相對應的驅動程式,如下表所示:

驅動程式名稱

版本

對應之資料庫

Microsoft Access driver

3.51

Access的mdb資料庫

Microsoft ODBC for Oracle

2.73

Oracle資料庫

SQL Server

3.50

SQL Server資料庫

Microsoft.jet.OLEDB

4.0

Access2000資料庫

SQLoledb.1

1.0

SQL7.0版資料庫



如果你已經安裝了 IIS/PWS 4.0 版,則至少會有下列三種資料庫驅動程式:

驅動程式名稱

版本

對應之資料庫

Microsoft Access driver

3.51

Accessmdb資料庫

Microsoft ODBC for Oracle

2.73

Oracle資料庫

SQL Server

3.50

SQL Server資料庫



那我要使用Access2000資料庫時怎麼辦?其實,你只要安裝較新的軟體後就會附有相關的最新資料庫驅動程式,要不然你也可以直接連上微軟的網站下載安裝最新的資料庫程式,如果你是使用 IIS 5.0版那您就大可放心了,因為 IIS 5.0已經提供了新版的資料庫驅動程式了。

查看已安裝的驅動程式
    在我們的機器上到底安裝了哪些ODBC資料庫驅動程式呢?要查看我們機器上安裝了哪一些資料庫驅動程式,首先,我們必須先打開『控制台』,然後再開啟『ODBC 資料來源』項目:
[attach]333[/attach]

在開啟『ODBC 資料來源』項目後,接著就會出現『ODBC 資料來源管理員』對話視窗,我們直接切換至『驅動程式』選項頁,就可以看到已安裝在我們機器上的資料庫驅動程式,如下圖所示,在你的機器中已安裝的資料庫驅動程式可能會比下圖多或少,數目多少要看你安裝了多少軟體而定,因為很多的軟體在我們執行安裝時常常會自動的幫我們安裝了某些ODBC資料庫驅動程式:
[attach]334[/attach]
作者: 小誌    時間: 2010-5-13 00:58

ADO物件群之Connection物件
Connection 物件是負責與資料庫實際的連結動作,建立與網路伺服器資料庫的連結是進行資料庫存取的第一步,若沒有 Connection 物件連結資料庫,則空有其他物件也沒用,那我們要如何來建立一個 Connection 物件呢?其標準格式如下所示:
  1. Set 物件名 = Server.CreateObject("ADODB.Connection")
複製代碼
上式中的『物件名』是我們自訂的,並沒有強制性的命名規定,不過,最好是取一個有意義的名字,以方便我們使用與記憶。

建立了 Connection 物件後我們緊接著就要利用這個 Connection 物件的『Open』方法來連結資料庫,下例為一個連結Access2000 格式的 test.mdb 資料庫檔案範例:
[attach]335[/attach]
1.建立一個物件名為 cn 的Connection 物件
  1. Set cn = server.createobject("ADODB.Connection")
複製代碼
2.使用變數Provide 來指定我們要使用的資料庫驅動程式,因為我們要進行連結存取的資料庫檔案類型為 Access 格式,所以使用的資料庫區對程式為:microsoft.jet.oledb.4.0
  1. provider = "provider = microsoft.jet.oledb.4.0;"
複製代碼
3.使用變數Path 來指定我們要使用的資料庫路徑與檔名,
  1. path = "data source=" & server.mappath("test.mdb")
複製代碼
我們要進行連結存取的資料庫檔案,必須指定此資料庫檔案的完整路徑名稱,所以我們必須使用『Server.MapPath』方法來取得資料庫檔案的完整路徑名稱。

4.接著使用 Open 方法來開啟我們指定資料庫檔案


重點:上述的說明有兩個重要的提點:
1.使用 Connection 物件的『Open』方法來連結『mdb』資料庫必須給予兩個參數:provider (驅動程式名稱)、data source(資料庫來源)
2.把握『Open』兩個參數的使用,我們可將步驟234合併來寫:
  1. cn.open "provider = microsoft.jet.oledb.4.0;data source=" & server.mappath("test.mdb")
複製代碼
『;』分號為參數間的分隔符號,不可省略哦!

下表為利用Connection 物件的『Open』方法來連結『mdb』資料庫必須給予的參數:

參數

設定值

Provider

microsoft.jet.oledb.4.0

Data Source

實際路徑檔案名稱

jet oledb:database password

密碼




你在想什麼?
    那個『密碼』參數對不對?我沒寫錯啦!如果我們要連結的mdb資料庫有設定密碼,那麼我們就要使用這個參數了啦!假設我們要連結開啟的資料庫有設定密碼"123",那麼我們就必須加入下面這組參數:
  1. Jet OLEDB:Database Password=123
複製代碼
不同的資料庫驅動程式,不同的參數
連結不同類型的資料庫要使用不同的對應驅動程式,沒忘記吧!不同的驅動程式當然它們的參數組合也就不同了,每一種不同驅動程式都有其特定的參數格式:
連結Dbf資料庫

參數

設定值

Provider

{microsoft visual foxpro driver}

Source DB

實際路徑檔案名稱

Source Type

DBF



連結Dbc資料庫

參數

設定值

Provider

{microsoft visual foxpro driver}

Source DB

實際路徑檔案名稱

Source Type

DBC



連結Excel資料庫

參數

設定值

Driver

{microsoft excel driver(*.xls)}

DBQ

實際路徑檔案名稱



連結Text資料庫

參數

設定值

Driver

{microsoft excel driver(*.txt;*cvs)}

DBQ

實際路徑檔案名稱



連結SQL資料庫

參數

設定值

Provider

SQLOLEDB.1

Data Source

server name

User ID

使用者ID

Password

密碼

Initial Catalog

資料表名稱



資料庫驅動程式名稱哪裡來?
    連結不同類型的資料庫要使用不同的對應驅動程式,這是筆者一再強調的,那麼我們如何得知資料庫驅動程式的名稱呢?先打開『控制台』,然後再開啟『ODBC 資料來源』項目,開啟『ODBC 資料來源』項目後,接著就會出現『ODBC 資料來源管理員』對話視窗,我們直接切換至『驅動程式』選項頁,注意看到『名稱』欄位,這些條列的項目就是開啟相關資料庫的驅動程式名稱!
[attach]336[/attach]
注意:取用這些驅動程式名稱,必須一字不漏的抄寫下來,包括英數字與符號,設置空白字元也不可放過!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)