Download presentation
Presentation is loading. Please wait.
1
第 11 章 資料庫應用與 ADO物件 製作
2
ASP網頁與資料庫 - 資料庫是什麼 資料庫 : 資料庫是電腦中用於儲存、處理大量資料的軟體。
資料庫所謂的資料處理,並不是指文字的編輯或者單純的數值運作,而是包含資料的搜尋與篩選。
3
ASP網頁與資料庫 資料庫是什麼 下表為Word、Excel與資料庫三者的比較。
4
簡介Access資料庫的操作 - 資料庫的基本觀念
5
簡介Access資料庫的操作 - 資料庫的基本觀念
下圖為用於儲存書籍資料之Book資料表的內容。
6
簡介Access資料庫的操作 - 建立一個資料庫
建立一個空白資料庫
7
簡介Access資料庫的操作 - 建立一個資料庫
8
簡介Access資料庫的操作 - 建立一個資料庫
9
簡介Access資料庫的操作 - 建立一個資料庫
開啟資料庫
10
簡介Access資料庫的操作 - 建立一個資料庫
亦可按下新增檔案欄的選擇檔案選項,或者按下工具列的開啟舊檔 按鈕,均可呼叫開啟資料庫對話盒選取欲開啟的檔案。
11
簡介Access資料庫的操作 - 資料表的建立
簡介資料表的設計檢視畫面 資料表是Access中儲存資料的物件,將資料儲存進資料表前,必須先建立資料表。 所謂的建立資料表,就是設定資料表中有哪些欄位,以及這些欄位所欲儲存的資料型態是那一種。
12
簡介Access資料庫的操作 - 資料表的建立
下圖為Book資料表的設計檢視畫面。
13
簡介Access資料庫的操作 - 資料表的建立
資料表設計檢視畫面的三個部份說明如下: 欄位設定區 此區用於設定資料表中各欄位的名稱、資料型態,以及欄位說明。
14
簡介Access資料庫的操作 - 資料表的建立
欄位屬性設定區 當完成欄位的資料類型選取後,欄位屬性設定區將會出現一些屬性必須設定,關於這些欄位屬性的設定將說明於11-2-3節。 協助訊息區 當在欄位屬性設定區設定屬性時,此區將顯示說明文字,供您參考。
15
簡介Access資料庫的操作 - 資料表的建立
資料表的新增
16
簡介Access資料庫的操作 - 資料表的建立
接著,進入一個空白資料表的設計檢視畫面。
17
簡介Access資料庫的操作 - 欄位的新增與操作
第一步是在欄位名稱欄設定儲存資料之欄位的名稱。 第二步為在資料類型欄選取該欄位所欲儲存資料的類型。而敘述欄僅用於輸入說明該欄位用途的文字,可以不輸入。 第三步則要進行各欄位屬性的設定。
18
簡介Access資料庫的操作 - 欄位的新增與操作
以下將說明不同資料類型的特性以及該類型欄位的屬性設定。 文字 單純的文字資料,可用於儲存地址、電話號碼…這一類不需要執行計算的資料。 一個文字欄位至多可儲存255個字元。
19
簡介Access資料庫的操作 - 欄位的新增與操作
下圖為文字資料類型欄位的屬性設定畫面。
20
簡介Access資料庫的操作 - 欄位的新增與操作
較為重要之屬性列於下表。
21
簡介Access資料庫的操作 - 欄位的新增與操作
備忘 下圖為備忘資料類型欄位的屬性設定畫面。
22
簡介Access資料庫的操作 - 欄位的新增與操作
較為重要之屬性列於下表。
23
簡介Access資料庫的操作 - 欄位的新增與操作
數字 在Access中,型態為數字之欄位可儲存的數值類型列於下表。
24
簡介Access資料庫的操作 - 欄位的新增與操作
25
簡介Access資料庫的操作 - 欄位的新增與操作
下圖為數字資料類型欄位的屬性設定畫面。
26
簡介Access資料庫的操作 - 欄位的新增與操作
較為重要之屬性列於下表。
27
簡介Access資料庫的操作 - 欄位的新增與操作
下圖為欄位大小屬性欄的下拉選單。
28
簡介Access資料庫的操作 - 欄位的新增與操作
貨幣 表示貨幣值的資料類型。貨幣類型可以避免數值計算時的四捨五入,且精確度到小數點後15位數及前方4位。儲存空間大小為8個位元。
29
簡介Access資料庫的操作 - 欄位的新增與操作
較為重要之屬性列於下表。
30
簡介Access資料庫的操作 - 欄位的新增與操作
自動編號 下圖為自動編號資料類型欄位的屬性設定畫面。
31
簡介Access資料庫的操作 - 欄位的新增與操作
日期/時間 表示日期/時間類型的資料。儲存空間大小為8個位元。
32
簡介Access資料庫的操作 - 欄位的新增與操作
較為重要之屬性列於下表。
33
簡介Access資料庫的操作 - 欄位的新增與操作
下圖為格式屬性欄的設定畫面。
34
簡介Access資料庫的操作 - 欄位的新增與操作
是/否(Yes/No) 資料類型設定為是/否類型的欄位中,僅可儲存兩種值。依照欄位屬性的設定可為是/否(Yes/No)、真/假(True/False)或者為開/關(On/Off)。
35
簡介Access資料庫的操作 - 欄位的新增與操作
較為重要之屬性列於下表。
36
簡介Access資料庫的操作 - 欄位的新增與操作
下圖為格式屬性欄的設定畫面。
37
簡介Access資料庫的操作 - 欄位的新增與操作
欄位的修改與刪除 欲修改欄位設定時,只要將滑鼠游標移至欲修改的欄位,即可進行修改。 欲刪除某欄位時,則將滑鼠游標移至欄位前的灰色方塊,待游標變成 狀後,按下滑鼠左鍵選取該欄位,再按下鍵盤的 按鈕,完成欄位的刪除。
38
簡介Access資料庫的操作 - 欄位的新增與操作
儲存資料表的設計 完成資料表的設計後,按下工具列上的 儲存按鈕便可呼叫另存新檔對話盒。在該對話盒中,完成資料表名稱的輸入後,按下 確定 按鈕即可完成資料表的儲存。
39
簡介Access資料庫的操作 - 欄位的新增與操作
將資料新增至資料表 當完成資料表建立後,或許會想要輸入一些測試用的資料,若此時資料表已經開啟在設計檢視模式下時,可以執行 [檢視/資料工作表檢視] 將畫面切換至資料工作表檢視畫面下。或者按下工具列的 檢視按鈕,點選資料工作表檢視選項,亦可將畫面切換至資料工作表檢視畫面下。
40
簡介Access資料庫的操作 - 欄位的新增與操作
若欲輸入資料的是已經完成的資料表時:
41
簡介Access資料庫的操作 - 欄位的新增與操作
進入資料工作表畫面將滑鼠游標移至空白的一列,開始輸入資料。
42
連結Access資料庫 - 利用Connection物件建立Access資料庫連結
Set 物件變數 = Server.CreateObject("ADODB.Connection") 以下敘述將建立Connection物件,並設定由cnnDB物件變數引用。 Set cnnDB = Server.CreateObject("ADODB.Connection")
43
連結Access資料庫 - 利用Connection物件建立Access資料庫連結
建立Connection物件後,接著,必須呼叫Open方法,才算完成資料庫的連結,語法如下: Connection物件變數. Open 連結字串, 使用者帳號, 密碼 Connection物件變數 引用至Connection物件的變數。 連結字串 說明欲連結資料庫類型與名稱的字串。
44
連結Access資料庫 - 利用Connection物件建立Access資料庫連結
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=資料庫路徑名稱 使用者帳號 登入資料庫的帳號,連結Access時不需使用。 密碼 登入資料庫的密碼,連結Access時不需使用。
45
連結Access資料庫 - 利用Connection物件建立Access資料庫連結
呼叫Close方法,關閉資料庫的連結,語法如下: Connection物件變數.Close 完成關閉資料庫連結後,最好再將Connection物件變數設為Nothing。 Set Connection物件變數 = Nothing
46
連結Access資料庫 - 連結ODBC資料來源
47
連結Access資料庫 - 連結ODBC資料來源
48
連結Access資料庫 - 連結ODBC資料來源
49
連結Access資料庫 - 連結ODBC資料來源
50
連結Access資料庫 - 連結ODBC資料來源
經過以上步驟,在Web伺服器將BookDB資料庫建立成名為BookDB的ODBC資料來源時,在ASP網頁中連結此資料來源的敘述如下。 cnnDB.Open "BookDB" '開啟ODBC資料來源
51
從資料庫取得資料 - 記錄集的觀念 記錄集的觀念
ADO的Recordset物件主要用於引用、參照一組擷取自資料庫的記錄,這一組記錄英文稱之為Record Set,中文譯為記錄集。
52
從資料庫取得資料 - 記錄集的觀念 記錄集的使用與記錄指標 Recordset物件雖然是由一組記錄組成,但一次只能操作一筆記錄。
這筆記錄就是記錄指標所指向的記錄,該筆記錄被稱為目前記錄(Current Record)。
53
從資料庫取得資料 - 記錄集的觀念 透過呼叫Recordset物件的MoveFirst(移至第一筆)、MovePrevious(移至上一筆)、MoveNext(移至下一筆)、MoveLast(移至最後一筆)這四個方法,即可控制記錄指標指向的記錄。
54
從資料庫取得資料 - Recordset物件的建立
Set 物件變數 = Server.CreateObject("ADODB. Recordset") 以下敘述將建立一個Recordset物件,並由rstObj物件變數引用。 Set rstObj = Server.CreateObject ("ADODB.Recordset")
55
從資料庫取得資料 - Recordset物件的建立
建立Recordset物件後,接著,必須呼叫Open方法,才能開啟一個記錄集,並設定使用的記錄指標,語法如下: Recordset物件變數.Open 資料來源, 資料連結, 指標型態, 鎖定方式, 選擇 各參數之用途說明如下: Recordset物件變數: 已完成建立的Recordset物件變數。
56
從資料庫取得資料 - Recordset物件的建立
資料來源: 選擇性參數。選擇性參數。此參數將傳入一字串,代表Recordset建立的記錄集從資料來源(資料庫)取得資料之方式 ,可為資料庫中資料表的名稱或者SQL敘述 資料連結: 選擇性參數。已完成建立,並連結至資料庫的Connection物件變數。
57
從資料庫取得資料 - Recordset物件的建立
指標型態: 選擇性參數。設定Recordset物件開啟之記錄集所使用的記錄指標類型。 參數之各設定值的意義說明於下表。
58
從資料庫取得資料 - Recordset物件的建立
鎖定方式 選擇性參數。此參數用於設定開啟Recordset物件時,應使用哪種型態的鎖定方式。 參數之各設定值的意義說明於下表。
59
從資料庫取得資料 - Recordset物件的建立
選擇 選擇性參數。此參數用於指出資料來源參數傳入的資料來源代表的意義。 參數之各設定值的意義說明於下表。
60
從資料庫取得資料 - Recordset物件的建立
以下敘述將在程式中開啟一個記錄集,此記錄集將從cnnDB物件所代表之資料庫連結中,取得Book資料表的資料。 rstObj.Open "Book", cnnDB rstObj物件呼叫Open方法後,相當於在ASP網頁建立了一個虛擬資料工作表。
61
從資料庫取得資料 - Recordset物件的建立
記錄指標類型 當呼叫Open方法開啟Recordset物件時,根據您傳入Open方法第三個參數(指標型態)之設定值,會產生四種不同的記錄指標: 動態指標 使用此指標的Recordset物件在操作記錄集的過程中,若有其他使用者同時操作資料庫時,可即時反應資料庫中的實際狀況。
62
從資料庫取得資料 - Recordset物件的建立
索引鍵集指標 使用此類指標時,您將無法檢視其他使用者於Recordset物件開啟所新增的紀錄,並可避免存取到使用者已刪除的紀錄,但可即時顯示其它使用者變更資料的情形。 靜態指標 靜態指標常用於尋找資料或建立記錄。
63
從資料庫取得資料 - Recordset物件的建立
向前記錄指標 此類型指標僅可在Recordset物件中向前移動讀取記錄。 取得記錄集中的記錄 欲從這個虛擬的資料工作表取得某筆記錄時,必須先將記錄指標移至該記錄上,然後利用以下語法取得資料。 Recordset物件變數("欄位名稱")
64
從資料庫取得資料 - Recordset物件的建立
以下敘述將從rstObj物件中,取得記錄指標目前所指向記錄的BookID欄位值。 rstObj("BookID") 當記錄指標移動至第一筆記錄前時,Recordset物件的BOF屬性將被設為true,反之為false。 指標移動至最後一筆記錄之後時,Recordset物件的EOF屬性將被設為true,反之為false。
65
從資料庫取得資料 - Recordset物件的建立
在讀取記錄時,便以此兩個屬性做為停止移動記錄指標的判斷依據。
66
從資料庫取得資料 - Recordset物件的建立
最常見也是最標準的資料讀取方法,將利用Do While…Loop迴圈,配合Recordset物件的MoveNext方法與EOF屬性,從記錄集的第一筆記錄,向前一筆一筆取出記錄,語法如下:
67
從資料庫取得資料 - Recordset物件的建立
每次進入迴圈前,將檢查經過NOT運算的EOF值是否為False。 若運算後的值為True,則EOF值為False,表示此時記錄指標尚未指向到最後一筆記錄之後的位置。 若此時,EOF屬性值被設為true,將停止執行迴圈。
68
從資料庫取得資料 - Recordset物件的建立
使用迴圈讀取記錄時,亦可將Do While…Loop換成Do Until…Loop,此時,就不需要用NOT運算子運算BOF屬性的值。
69
從資料庫取得資料 - Recordset物件的建立
當使用完Recordset物件後,您可以呼叫Close方法,關閉記錄集,釋放所佔用的記憶體空間,語法如下: Recordset物件變數.Close 關閉Recordset物件後,最好設定Recordset物件變數為Nothing。 Set Recordset物件變數= Nothing
70
從資料庫取得資料 - 取得記錄集中欄數與欄位名稱
取得記錄集中的欄位數 當Recordset物件開啟記錄集後,可運用以下語法取得記錄集的欄位數目。 Recordset物件變數.Fields.Count Fields是一個集合物件,代表的是Recordset物件所開啟記錄集的欄位集合。 該集合物件的Count屬性,為記錄集內的欄位個數。
71
從資料庫取得資料 - 取得記錄集中欄數與欄位名稱
取得記錄集中欄位的名稱 取得記錄集中某欄位名稱的語法如下: Recordset物件變數.Fields (欄位索引值).Name Recordset物件變數 已完成建立的Recordset物件。 欄位索引值 記錄集中代表各欄位的索引值。
72
從資料庫取得資料 - 記錄筆數與記錄指標位置的取得
對於記錄集中記錄的筆數,可以從RecordCount屬性取得,語法如下: Recordset物件變數.RecordCount 取得記錄指標目前指向位置的語法如下: 變數 = Recordset物件變數. AbsolutePosition 將記錄指標設定指向第N筆記錄的語法如下: Recordset物件變數. AbsolutePosition = N
73
從資料庫取得資料 - 以分頁方式檢視記錄集 當從資料庫取出的記錄過多,無法同時顯示於網頁時,通常會採取分頁的方式,將資料分成數頁網頁顯示。
從資料庫取得資料 - 以分頁方式檢視記錄集 當從資料庫取出的記錄過多,無法同時顯示於網頁時,通常會採取分頁的方式,將資料分成數頁網頁顯示。 為了方便程式設計師以分頁方式顯示資料,Recordset物件提供了一些屬性,可用於設計以分頁方式顯示資料之網頁。
74
從資料庫取得資料 - 以分頁方式檢視記錄集 每頁記錄筆數的設定
從資料庫取得資料 - 以分頁方式檢視記錄集 每頁記錄筆數的設定 欲以分頁方式顯示記錄集的第一步,必須先設定記錄集每一頁的記錄筆數,設定方式是將每一頁所存在的記錄筆數設定給Recordset物件的PageSize屬性,語法如下: Recordset物件變數.PageSize = 筆數
75
從資料庫取得資料 - 以分頁方式檢視記錄集 總頁數的取得與計算方式
從資料庫取得資料 - 以分頁方式檢視記錄集 總頁數的取得與計算方式 完成每一頁筆數的設定後,透過PageCount屬性便可取得記錄集總共被分成幾頁,語法如下: 變數 = Recordset物件變數.PageCount
76
從資料庫取得資料 - 以分頁方式檢視記錄集 設定記錄指標指向的頁數 取得記錄指標目前指向頁數的語法如下:
從資料庫取得資料 - 以分頁方式檢視記錄集 設定記錄指標指向的頁數 取得記錄指標目前指向頁數的語法如下: 變數 = Recordset物件變數.AbsolutePage 將記錄指標設定指向第N頁開頭的語法如下: Recordset物件變數.AbsolutePage = N
77
從資料庫取得資料 - 以分頁方式檢視記錄集 當利用AbsolutePage屬性設定記錄指標指向第N頁時,相當於使用以下語法設定AbsolutePosition屬性。 Recordset物件變數.AbsolutePosition = (N – 1) * 每頁記錄筆數 + 1 輸出某頁中的記錄 當欲輸出記錄集中某一頁的記錄時,通常會使用For迴圈,而計次變數的範圍則從1到PageSize屬性(每一分頁中的記錄筆數)。
78
從資料庫取得資料 - 以分頁方式檢視記錄集 應使用的記錄指標類型
從資料庫取得資料 - 以分頁方式檢視記錄集 應使用的記錄指標類型 ASP網頁內欲使用PageCount、PageSize或AbsolutePage屬性時,所開啟的記錄集不可以使用動態記錄指標與向前記錄指標。
79
連結其他資料來源 - 連結SQL Server資料庫
以Access建立SQL Server資料庫 在Windows平台下除Access外,SQL Server亦為常用的資料庫。 欲建立SQL Server資料庫時,除了可以直接操作SQL Server建立外,還可以透過匯入Access資料庫的方式完成。步驟如下幾張投影片:
80
連結其他資料來源 - 連結SQL Server資料庫
81
連結其他資料來源 - 連結SQL Server資料庫
82
連結其他資料來源 - 連結SQL Server資料庫
83
連結其他資料來源 - 連結SQL Server資料庫
84
連結其他資料來源 - 連結SQL Server資料庫
85
連結其他資料來源 - 連結SQL Server資料庫
86
連結其他資料來源 - 連結SQL Server資料庫
運用ADO的Connection物件連結SQL Server上的資料庫時,只要運用11-3-1節介紹的語法,並使用以下的連結字串即可。 driver={SQL Server};server=伺服器名稱;uid=帳號;pwd=密碼;database=資料庫名稱
87
連結其他資料來源 - 連結Excel檔 運用ADO的Connection物件除了可以連結資料庫外,還可以使用以下的連結字串連結Excel檔。
Microsoft Excel Driver (*.xls)};DBQ=Excel檔的路徑與名稱
88
連結其他資料來源 - 連結文字檔 連結字串將僅連結至文字檔所在位置的資料夾路徑,使用的連結字串如下:
連結其他資料來源 - 連結文字檔 連結字串將僅連結至文字檔所在位置的資料夾路徑,使用的連結字串如下: Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=文字檔存在的資料夾路徑 以下連結字串將連結文字檔的資料夾位置(C:\ASPEx)。 Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=C:\ASPEx
89
連結其他資料來源 - 連結文字檔 以下敘述將運用ADO的Connection物件,連結至C:\ASPEx資料夾,然後呼叫Recordset物件的Open方法開啟Book.txt。
Similar presentations