11 ado n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第 11 章 ADO 元件建立網頁資料庫 PowerPoint Presentation
Download Presentation
第 11 章 ADO 元件建立網頁資料庫

Loading in 2 Seconds...

play fullscreen
1 / 29

第 11 章 ADO 元件建立網頁資料庫 - PowerPoint PPT Presentation


  • 113 Views
  • Uploaded on

第 11 章 ADO 元件建立網頁資料庫. 11-1 網頁資料庫的基礎 11-2 Access 建立資料庫 11-3 建立資料庫連結 11-4 ASP 建立網頁資料庫. 11-1 網頁資料庫的基礎. 11-1-1 資料庫系統 11-1-2 ASP 與資料庫 11-1-3 ADO 元件簡介 11-1-4 如何建立 ASP 網頁資料庫. 11-1-1 資料庫系統. 在電腦計算機科學的應用領域,資料庫才是公司行號或家庭真正電腦化的推手,事實上早期的程式設計師都是靠著接案設計資料庫系統為生。

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '第 11 章 ADO 元件建立網頁資料庫' - baruch


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
11 ado
第11章 ADO元件建立網頁資料庫
  • 11-1 網頁資料庫的基礎
  • 11-2 Access建立資料庫
  • 11-3 建立資料庫連結
  • 11-4 ASP建立網頁資料庫
slide2
11-1 網頁資料庫的基礎
  • 11-1-1 資料庫系統
  • 11-1-2 ASP與資料庫
  • 11-1-3 ADO元件簡介
  • 11-1-4 如何建立ASP網頁資料庫
11 1 1
11-1-1 資料庫系統
  • 在電腦計算機科學的應用領域,資料庫才是公司行號或家庭真正電腦化的推手,事實上早期的程式設計師都是靠著接案設計資料庫系統為生。
  • 眾多的出勤管理系統、倉庫管理系統、進銷存系統或小至錄影帶店管理系統,這些應用程式系統都屬於不同應用的資料庫系統。
11 1 2 asp 1
11-1-2 ASP與資料庫-1
  • 轉換到Web舞台的資料庫本質並沒有轉變,仍然是儲存資料以便快速的查詢資訊,只是資料庫的使用介面變成HTML文件。
  • 網頁資料庫屬於一種結合前端HTML文件的使用介面,配合後端Web伺服器和資料庫系統的一種全新的應用程式架構。
11 1 3 ado
11-1-3 ADO元件簡介
  • ASP程式存取資料庫是使用「ADO」(ActiveX Data Object)元件。
  • ADO元件的目的是存取和編輯資料來源DSN的資料,提供一致的資料處理方式,資料來源並不限於資料庫,也可以是Excel試算表或文字檔。
  • ADO元件的目的是存取資料庫記錄,只是將記錄寫入或從資料表取出,至於文件的編排輸出還是使用HTML標籤。
11 1 4 asp
11-1-4 如何建立ASP網頁資料庫
  • ASP建立網頁資料庫的步驟,如下所示:
    • 建立資料庫,第11-2節使用Access 2000建立所需的資料庫。
    • 新增ODBC系統資料來源,在第11-3節分別在Windows 2000/98/SE建立ODBC系統資料來源,並且在ASP程式建立資料連結。
    • ASP程式使用ADO元件存取資料庫的內容,啟動瀏覽程式執行與測試網頁資料庫,第11-4節使用ADO元件存取資料庫記錄,建立ASP網頁資料庫。
11 2 access
11-2 Access建立資料庫
  • 11-2-1 Access欄位的資料型態
  • 11-2-2 建立空白資料庫
  • 11-2-3 開啟存在的資料庫
  • 11-2-4 新增資料表
  • 11-2-5 新增資料表欄位
  • 11-2-6 刪除資料表欄位
  • 11-2-7 新增資料表的記錄資料
slide9
11-3 建立資料庫連結
  • 11-3-1 資料庫連結的Connection物件
  • 11-3-2 建立DSN-less資料庫連結
  • 11-3-3 新增ODBC系統資料來源DSN
  • 11-3-4 建立DSN資料庫連結
11 3 1 connection
11-3-1 資料庫連結的Connection物件
  • 第一步:建立Connection物件

Set objDBConn = Server.CreateObject("ADODB.Connection")

  • 第二步:開啟ODBC的資料來源

objDBConn.Open DSN_String

  • 第三步:資料庫操作與查詢

If objDBConn.State = 1 Then

Response.Write("<b>目前為開啟狀態</b><br>")

Else

Response.Write("<b>目前為關閉狀態</b><br>")

End If

  • 第四步:關閉資料庫連結
11 3 2 dsn less
11-3-2 建立DSN-less資料庫連結
  • DSN-less連結資料庫必須自行提供資料庫的相關資訊,以Access 2000資料庫系統為例,資料庫Books.mdb的DSN-less字串,如下所示:

strDSNless = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("Books.mdb")

  • Access的資料庫也可以使用下列的DNS-less字串,如下所示:

strDSNless = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.Mappath("Books.mdb")

11 3 3 odbc dsn
11-3-3 新增ODBC系統資料來源DSN
  • ODBC屬於一種標準的資料庫介面,提供各類應用程式一個標準的資料庫存取方式,如下圖所示:
11 3 4 dsn
11-3-4 建立DSN資料庫連結
  • 在新增ODBC的DSN系統資料來源後,Connection物件Open方法開啟DSN資料來源的字串,如下所示:

strDSN = "Books_list"

  • 字串是DSN名稱Books_list,如果在新增DSN時設定使用者名稱和密碼,此時的DSN字串,如下所示:

strDSN = "DSN=Books_list;uid=hueyan;pwd=1234"

11 4 asp
11-4 ASP建立網頁資料庫
  • 11-4-1 Recordset物件的基礎
  • 11-4-2 開啟記錄集合
  • 11-4-3 取得欄位名稱與內容
  • 11-4-4 取得與移動記錄指標
  • 11-4-5 表格顯示資料表記錄
  • 11-4-6 分頁顯示資料表記錄
11 4 1 recordset 1
11-4-1 Recordset物件的基礎-1
  • Recordset物件屬於ADO元件最重要的物件,從英文名字看來就是「記錄集合」 。
  • Recordset物件可以建立一個記錄集合把所需的資料表記錄取出,使用虛擬表格的方式,每一列為一筆記錄,每一欄為一個欄位,提供ASP程式一致的資料處理方式。
11 4 1 recordset 2
11-4-1 Recordset物件的基礎-2
  • Recordset在處理上需注意下列三個事項,如下所示:
    • 記錄集合表格中記錄指標的移動能力(CursorType)為單向前或前後都可以移動,所謂單向指的是指標不能回頭,記錄指標能夠一筆筆往下移動,但是不能在經過後,回頭讀取已經經過的記錄。
    • 資料來源本身的存取能力(LockType),主要是避免兩個人同時寫入同一筆記錄。
    • 目前記錄指標的位置,Recordset的MoveFirst方法可以跳到第一筆,MoveLast方法跳到最後一筆,MoveNext方法是下一筆,MovePrevious方法為上一筆。
11 4 1 recordset 3
11-4-1 Recordset物件的基礎-3
  • Recordset物件建立的步驟,如下所示:
    • 第一步:建立Connection物件開啟資料來源
    • 第二步:建立Recordset物件

Set objRS=Server.CreateObject("ADODB.RecordSet")

    • 第三步:開啟記錄集合取得資料

objRS.Open "Book", objDBConn, adOpenStatic, adLockReadOnly, adCmdTable

    • 第四步:處理記錄集合的記錄
    • 第五步:關閉Recordset物件
    • 第六步:關閉資料庫連結
11 4 2 1
11-4-2 開啟記錄集合-1
  • Recordset物件的Open方法,如下所示:

objRS.Open Source, ActiveConnection, CursorType, LockType, Options

    • Source/Options參數
    • ActiveConnection參數
    • CursorType參數
    • LockType參數
11 4 2 2
11-4-2 開啟記錄集合-2
  • Source/Options參數:
11 4 2 3
11-4-2 開啟記錄集合-3
  • ActiveConnection參數:
    • ActiveConnection參數指定開啟的資料連結,也就是建立的Connection物件。
11 4 2 4
11-4-2 開啟記錄集合-4
  • CursorType參數:
11 4 3
11-4-3 取得欄位名稱與內容
  • 取得記錄集合的欄位數,其程式碼如下所示:

intFdCount = objRS.Fields.Count

  • 程式碼在取得欄位數後,可以依索引取得欄位名稱、值和型態,如下所示:

objRS.Fields(intI).Name

objRS.Fields(intI).Value

objRS.Fields(intI).Type

  • 程式的索引變數intI以0開始到inFdCount - 1,依序取得欄位資料。
11 4 4 1
11-4-4 取得與移動記錄指標-1
  • Recordset的相關方法,如下表所示:
11 4 4 2
11-4-4 取得與移動記錄指標-2
  • 在開啟記錄集合objRS後,我們就可以使用方法移動記錄集合的記錄指標,如下所示:

objRS.MoveLast ' 最後一筆

objRS.MoveFirst ' 第一筆

objRS.MoveNext ' 下一筆

objRS.MovePrevious ' 上一筆

  • AbsolutePosition屬性馬上跳到指定的記錄,如下所示:

objRS.AbsolutePosition = 3

  • 程式碼移到第3筆記錄,直接使用欄位名稱顯示該筆記錄的欄位內容,如下所示:

objRS("BookID")

11 4 5
11-4-5 表格顯示資料表記錄
  • 在取得資料表的全部記錄後,使用Do While迴路取得資料表的每一筆記錄,如下所示:

Do While Not objRS.EOF

……

objRS.MoveNext ' 移到下一筆記錄

Loop

  • 迴路條件為ObjRS.EOF屬性,檢查是否已經到了資料表最後一筆記錄之後,也就是資料表已經沒有記錄。
  • 記錄欄位內容使用一個For Next迴路顯示每一個儲存格,如下所示:

For intI = 0 To intFdCount

' 取得每個欄位的內容

Response.Write("<td>" & objRS(intI) & "</td>")

Next

11 4 6 1
11-4-6 分頁顯示資料表記錄-1
  • Recordset物件取得的記錄集合本身就是分頁顯示的虛擬表格,只需設定好相關屬性,就可以分頁顯示資料表的記錄,記錄集合分頁的相關屬性,如右圖所示:
11 4 6 2
11-4-6 分頁顯示資料表記錄-2
  • Recordset物件分頁屬性的說明,如下表所示:
  • Recordset物件的分頁屬性,如下所示:

objRS.PageSize = intPageSize

intMaxPageCount = Cint(objRS.PageCount)

objRS.AbsolutePage = intPageNo

11 4 6 3
11-4-6 分頁顯示資料表記錄-3
  • 使用Do Loop迴路顯示分頁的記錄,如下所示:

intRecCount = 0

Do While Not objRS.EOF AND intRecCount < objRS.PageSize

….

objRS.MoveNext ' 下一筆記錄

intRecCount = intRecCount + 1

Loop