recordset 物件 – 存取資料庫的物件

Post on 02-Jan-2016

128 Views

Category:

Documents

8 Downloads

Preview:

Click to see full reader

DESCRIPTION

Recordset 物件 – 存取資料庫的物件. 存取資料庫的基本概念. 資料庫是一種特殊組織結構的檔案 , 其存取方法與檔案迥然不同 , 在 ASP 網頁製作中 , 用來存取資料庫的物件統稱 ADO (ActiveX Data Objects) , 主要含有 Connection 、 Recordset 、及 Command 三種物件. 存取資料庫的基本概念. 存取資料庫的基本概念. Connection 物件:負責開啟或連結資料庫檔案 Recordset 物件:存取資料庫的內容 - PowerPoint PPT Presentation

TRANSCRIPT

Recordset 物件 – 存取資料庫的物件

存取資料庫的基本概念• 資料庫是一種特殊組織結構的檔案 , 其存

取方法與檔案迥然不同 , 在 ASP 網頁製作中 , 用來存取資料庫的物件統稱 ADO (ActiveX Data Objects), 主要含有 Connection 、 Recordset 、及 Command 三種物件

存取資料庫的基本概念

存取資料庫的基本概念• Connection 物件:負責開啟或連結資料庫

檔案• Recordset 物件:存取資料庫的內容• Command 物件:下達行動查詢指令給資

料庫 , 以及執行 SQL Server 的 Stored Procedure

存取資料庫的準備工作

ADO 物件

dBase資料庫

dBase驅動程式

Access資料庫

Access驅動程式

SQL Server資料庫

SQL Server驅動程式

Oracle資料庫

Oracle驅動程式 ¡K

¡K

應用程式 應用程式 應用程式 ¡K

安裝新版的 ODBC 及 OLE DB 驅動程式

該選用 OLE DB 或 ODBC 驅動程式 ?

• OLE DB 驅動程式 , 除了版本較新之外 , 其執行效能優於 ODBC 驅動程式 , 所以當我們存取的是 Access 或 SQL Server 資料庫時 , 使用 OLE DB 驅動程式較佳

使用筆者所提供的函數

使用 Recordset 物件讀取資料的基礎

讀取資料的基本敘述

讀取抬頭的方法

學號 姓名 國文 英文 數學

rs (0) .Name rs (2) .Name rs (4) .Name

rs (1) .Name rs (3) .Name

讀取資料內容的方法

850301 陳桶一 90 76 98

rs(0) rs(1) rs(2) rs(3) rs(4)

目前資料錄學號 姓名 國文 英文 數學

改變目前資料錄的方法• MoveNext :將目前資料錄移到下一筆• MovePrevious :將目前資料錄移到上一筆• MoveFirst :將目前資料錄移到第一筆• MoveLast :將目前資料錄移到最後一筆

改變目前資料錄的方法• BOF 屬性• EOF 方法

12

N

目前資料錄指標BOF 屬性 = True

EOF 屬性 = True

正常的指標範圍

使用欄位名稱讀取資料

目前資料錄 850301 陳桶一 90 76 98

學號 姓名 國文 英文 數學

rs(" 學號 ") rs(" 姓名 ") rs(" 國文 ") rs(" 英文 ") rs(" 數學 ")= rs(0 ) = rs(1 ) = rs( 2) = rs(3 ) = rs(4 )

定位式的資料讀取• 以上例說明 , 為避免當我們要讀取第 100

筆資料時 , 須先呼叫 MoveNext 100 次 , 可以先設定 AbsolutePosition 屬性

資源與執行效能的考慮•利用 AbsolutePosition 屬性來設定目前資料錄的位置固然簡便 , 但卻耗損資源。筆者所提供的 GetMdbRecordset 函數可以節省記憶體 , 且開啟資料表所花費的時間也較少

具備分頁瀏覽功能的網頁

Pagev1.asp :分頁的技巧

Pagev1.asp :分頁的技巧

Pagev1.asp :分頁的技巧

Pagev2.asp :在「位址」欄位中輸入頁次

Pagev3.asp :頁次的瀏覽

Pagev3.asp 將增加這些的功能

Pagev3.asp :頁次的瀏覽

Pagev4.asp :增加「輸入頁次」欄位

Pagev4.asp 增加此一功能

Pagev4.asp :增加「輸入頁次」欄位

Pagev4.asp :增加「輸入頁次」欄位

資料錄的新增、刪除、與修改• 刪除資料錄• 修改資料錄• 新增資料錄

刪除資料錄及連續刪除多筆資料

修改資料錄

CancelUpdate 方法:取消更新的資料

• 除了呼叫 Update 方法或改變目前資料錄的位置以促使更新的資料立刻寫到資料庫之外 , Recordset 物件也允許我們在修改資料錄之後、而資料尚未寫入資料庫以前 , 取消更新的資料 , 讓資料錄回復原狀

直接將想要修改的資料寫入資料庫

新增資料錄

直接將想要新增的資料寫入資料庫

可以篩選與排序資料的 Select 指令

Select 欄位串列 From 資料表

欄位串列的規則• 凡是資料表裡的欄位都可以成為「欄位串

列」的一員 , 例如:

欄位串列的規則• 欄位之順序可以自訂 , 不必與資料表裡的

欄位順序相同 , 例如:

• 欄位名稱若含有空白字元時 , 需以中括號 [ ] 括起來

Select...From...Where 篩選條件式

Select...From...Order By 欄位串列

Select Top :限定選取資料錄的筆數

• 除了 Where 條件式可以篩選資料 , 減少網路流量之外 , 另外有一個方法則是在選取資料錄時 , 指定選取的最大筆數 , 如下:

• 配合 Top n 的使用 , 另一種語法如下:

「 Where 條件式」變化式• 字串資料

• 萬用字元

其他特殊的條件式• Where 欄位名稱 Between 值一 And 值

二• Where 欄位名稱 In ( 值一 , 值二 , …)

• Where 欄位名稱 Is Null / Where 欄位名稱 Is Not Null

• VB 函數的使用

在程式中組合條件式

Connection 物件與 Command 物件

使用 Connection 物件的基礎• 資料庫存取雖然以 Recordset 物件為主角 ,

但若沒有先用 Connection 物件連結資料庫 , 空有 Recordset 物件 , 也無法存取資料庫中的內容

資料庫的連結與參數的設定

程式一:連結 mdb 資料庫

程式二:連結 dbf 資料庫

Access 資料庫與 dbf 檔案所定的參數比較

比較點 Access dbf

驅動程式 OLE DB

驅動程式ODBC

驅動程式Data Source mdb 檔案的

實際路徑( 無 )

SourceDB ( 無 ) 目錄的實際路徑

SourceType ( 無 ) DBF

Mdb 資料庫的參數設定

Dbf 檔案的參數設定

Dbc 資料庫的參數設定

Excel 檔案的參數設定

Text 檔案的參數設定

使用筆者提供的函數

使用筆者提供的函數

加密的 Mdb 資料庫

1.選取資料庫

2.下拉

3.選取

加密的 Mdb 資料庫

開啟加密的 mdb 資料庫• 為 mdb 資料庫設定密碼之後 , 須使用以

下函數方可加以開啟:– GetSecuredMdbConnection– GetSecuredMdbRecordset– GetSecuredMdbStaticRecordset

使用 Excel 資料庫

含有三個工作表

使用純文字檔• 使用純文字檔時 , 並不是所有純文字檔都

可以做為 Recordset 物件的資料 , 一般來說 , 以 CSVDelimited ( 或簡稱 CSV) 格式的純文字檔最適合

CSVDelimited 格式的特點• 第一行表示「欄位」的名稱 , 以上的文字

檔轉入資料庫之後 , 將含有「學號」、「姓名」、「國文」、「英文」、「數學」等 5 個欄位

• 欄位之間以逗號 (,) 分開• 「文字」欄位必須使用雙引號框起來 , 例

如 " 陳桶一 "

可設定文字格式的 schema.ini 檔案

• Text 驅動程式在讀取文字檔的過程中 , 會根據資料自動判斷欄位的資料類型 , 但也可能使得轉入的資料類型與長度未必符合我們的需求 , 可利用 schema.ini 來設定匯入的資料類型與長度

schema.ini 的撰寫

[成績單 2.txt]Col1=¾Ç¸¹ LongCol2=©m¦W Char Width 10Col3=°ê¤å ShortCol4= ̂¤å ShortCol5=¼Æ¾Ç Short

文字檔名稱欄位的資料類型與長度

資料類型名稱的差異

以其他字元為分隔符號• 除了逗號 (,) 之外 , 被匯入的文字檔也可

以採用 Tab 字元或其他字元為欄位的分隔符號 , 但此時必須利用 schema.ini 進行設定

以其他字元為分隔符號

以其他字元為分隔符號

固定長度的文字格式

850301850302850303850304850305850306

學號陳桶一姓名

黃光權胡生妙王為全李日正劉德菖

國文90

數學76

英文98

58 77 7541 14 3395 97 8759 66 5728 11 33

11 10 6 6 6

其他注意事項• 純文字檔的 ODBC 驅動程式只提供讀取檔

案的功能 , 因此附屬於 Recordset 物件的 AddNew ( 新增 ) 、 Delete ( 刪除 ) 、及 Update ( 更新 ) 方法都不能呼叫

• Excel 驅動程式提供讀取、新增、及修改資料錄的功能 , 但「刪除」的功能則未提供

其他注意事項• FoxPro 驅動程式 ( 可開啟 dbf 檔案及 db

c 資料庫 ) 所提供的功能較多 , 同時具備讀取、新增、刪除、及修改資料錄的功能 , 但仍有以下限制: (1) 新增資料錄時 , 不可以含有空欄位 (Null)

(2) 執行 SQL 指令時 , 不接受 VB 函數

SQL Server OLE DB 驅動程式的參數設定

SQL Server OLE DB 驅動程式的參數設定

• Data Source 參數 ( 安裝 SQL Server 的機器名稱 )

• User ID 及 Password 參數 ( 使用者 ID 及密碼 )

• Initial Catalog 參數

筆者提供的函數

無法連線可能的原因• SQL Server 是否已經啟動• SQL Server 資料庫上面是否建立有使用者

ID 及密碼• 您的使用者 ID 是否已經被授權使用某一

( 些 ) 資料庫 ( 表 )

• 您的機器是否已經登入 Server 主機

注意授權金的問題• SQL Server 屬於 Server 等級的資料庫 ,

如果您提供的網頁會使用到 SQL Server 資料庫 , 這表示進入您網站的上網者都會因此使用到 SQL Server, 因此將 SQL Server 使用於網際網路也是必須付費的 , 而且付費者是網頁提供者 , 不是上網者

Command 物件的建立

Action Query 寫入資料的功能種類

• 刪除資料錄: Delete 指令• 更新資料錄: Update 指令• 新增資料錄: Insert Into 指令•建立新資料表: Select Into 指令

Delete 指令:刪除資料錄• Delete 指令的基本語法如下:

Update 指令:更新資料錄• Update 指令的語法要這麼下:

Insert Into 指令:新增資料錄• Insert Into 指令的 2 種格式

Select Into 指令:建立新資料表

如何執行 Action Query 指令 ?

為什麼需要 Action Query 指令 ?

• 對於單筆資料的刪除、更新、及新增來說 , 使用 Recordset 物件較方便 , 但若是大量資料的刪除、更新、及新增 , 則使用 Action Query 其執行效能較高

top related