標題:
[教學]
(ASP教學第14篇) 資料庫驅動程式 下篇
[打印本頁]
作者:
小誌
時間:
2010-5-13 01:09
標題:
(ASP教學第14篇) 資料庫驅動程式 下篇
ADO物件群之Recordset物件
建立Recordset物件
Recordset物件是負責瀏覽與操作從資料庫取出來的資料,其標準格式如下所示:
[attach]337[/attach]
上式中的『rs』(物件名)同樣是我們自訂的,沒有強制性的命名規定,不過,最好是取一個有意義的名字,以方便我們使用與記憶。
接著使用open方法來開啟資料表或執行Select指令。
參數設定如下:
參數一(Source):此參數可為一個Command物件名稱、一段SQL指令、一個指定的資料表格名稱或是一個Stored Procedure;若指定為資料表名稱則開啟整個資料表,若使用Select指令則建立的Recordset物件內所存放的資料為選取資料錄的結果。
參數二(ActionConnection):recordset可透過此屬性連結connection物件,此參數可為Connection物件名稱或是一串包含『資料庫連結資訊(ConnectionString)』的字串參數。
參數三(CursorType):表以何種游標開啟資料,包含adOpenForwardOnly、adOpenKeyset、adOpenDynamic、adOpenStatic四種方式。
參數四(LockType):表採用何種Lock型態,包含adLockReadOnly、adLockPessimistic、adLockOptimistic、adLockBatchOptimistic四種型態。
參數五(Options):表對資料庫請求的型態,包含adCmdUnknow、adCmdText、adCmdTable、adCmdStoredProc四種參數。
讀取Recordset物件資料
要讀取Recordset物件內的資料,就必須先了解資料表的結構!
Field物件:
資料庫中最小的資料單位為『欄位』,在ADO物件群中相對應的就是Field物件,Filed物件擁有三個屬性,分別為『Name』(欄位標題)、『Value』(欄位資料內容)、『Type』(欄位資料型態,例如:數字、文字、日期....等等)等三種:
[attach]338[/attach]
Fields 集合物件:
Field物件集合就是Fields集合物件,對比於資料庫的組織結構來看,欄位的集合就構成『資料錄』:
[attach]339[/attach]
了解了Recordset物件內的基本結構,我們可以清楚的知道Fields集合物件基本上就是一個『陣列』,因此我們就可以利用陣列的特性,也就是可以利用『Count』屬性配合『For』迴圈敘述來列舉出Field物件!
[attach]340[/attach]
另外我們還可以搭配下方屬性MoveFirst及BOF將所有資料讀取
改變目前資料表的方法
MoveNext:移至下一筆資料使其成為現用資料錄
MovePrevious:移至前一筆資料使其成為現用資料錄
MoveFirst:移至第一筆資料使其成為現用資料錄
MoveLast:移至最後一筆資料使其成為現用資料錄
BOF:資料錄指標是否移至第一筆資料錄之前
EOF:資料錄指標是否移至最後一筆資料錄之後
AbsolutePosition:設定或傳回現用資料錄的絕對位置
資料表的新增、刪除與修改
Addnew:新增資料錄
Update:更新資料錄
CancelUpdate:取消更新資料
Delete:刪除資料錄
下例即是新增資料錄的使用方法,請注意:『rs』是一個我們自行建立的Recordset物件:
rs.addnew
rs("客戶編號")="A100"
rs("客戶名稱")="麻辣學園"
rs("住址")="台灣省台北縣"
rs.update
複製代碼
注意
當我們使用『Addnew』方法加入新資料後,最後一定還要加上呼叫『Update』方法來將資料錄更新,如此一來新增的資料才會被存進資料庫檔案中!
作者:
小誌
時間:
2010-5-13 01:20
ADO物件群之Command物件
Command物件
Command 物件負責對資料庫提供請求,也就是傳遞指定的SQL指令,即執行Action Query指令,建立方式如下:
[attach]341[/attach]
何謂Action Query指令?
Action Query指令是指能夠寫入資料的指令,可分為以下幾種:
Delete 指令:
刪除資料錄,語法如下:
Delete From 資料表 Where 條件式
複製代碼
例如:我們要將『員工』資料表中『年齡』已經超過『60』歲的人員資料刪除
Delete From 員工 Where 年齡 > 60
複製代碼
注意:
如果指令中的 『Where 條件式』忽略掉而沒使用,則所有的資料可是都會被刪除的喔!也就是說資料表的內容將會是空的。
Update 指令:
更新資料錄,語法如下:
Update 資料表 set 運算式
複製代碼
通常我們都會利用Updata指令來進行數學的運算,例如:公司要進行年度薪資調整,因此我們要將『員工薪資』資料表中『薪資』欄位值提高五個百分比:
Update 員工薪資 set 薪資 = 薪資*1.05
複製代碼
Insert Into 指令:
新增資料錄,語法如下:
Insert Into 資料表(欄位串列) Values(欄位串列)
複製代碼
例如:公司加入了新的成員,我們要在『員工』資料表中加入這位新員工的資料
Insert Into 員工(姓名,年齡) Values(楊小誌,28)
複製代碼
注意:
欄位名稱與欄位值必須相對應!
Insert Into 資料表(欄位一,欄位二,...) select ...
複製代碼
此格式乃是將Select指令所選取的資料錄新增至另一個資料表中。
注意:
此格式中的兩個資料表必須是預先就已經建立完成的呦!
Select Into 指令:
建立新資料錄,語法如下:
Select * Into 新資料表 From 資料表 Where 條件式
複製代碼
此格式乃是將所選取的資料錄新增至另一個『新的』資料表中。
例如:我們要將『員工薪資』資料表中『薪資』欄位值高於5萬元的員工人員資料建立成另外一個新的『高薪人員』資料表
Select * Into 高薪人員 From 員工薪資 Where 薪資>50000
複製代碼
如何執行Action Query指令
在要執行 Action Query 指令非常簡單,我們只要將Action Query 指令指定給『Command』物件的『CommandText』屬性,然後再呼叫『Command』物件的『Execute』方法執行Action Query指令,如下圖所示:
[attach]342[/attach]
注意:
『cmd』是一個我們已經建立好的『Command』物件,而『SQL』則是我們要執行的Action Query指令。
Action Query指令的使用時機:針對大量資料的刪除、新增與更新,其效率較高。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)