返回列表 上一主題 發帖

[教學] (ASP教學第14篇) 資料庫驅動程式 下篇

[教學] (ASP教學第14篇) 資料庫驅動程式 下篇

ADO物件群之Recordset物件
建立Recordset物件
    Recordset物件是負責瀏覽與操作從資料庫取出來的資料,其標準格式如下所示:
1.png
2010-5-13 01:02


上式中的『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』(欄位資料型態,例如:數字、文字、日期....等等)等三種:
2.png
2010-5-13 01:02


Fields 集合物件:Field物件集合就是Fields集合物件,對比於資料庫的組織結構來看,欄位的集合就構成『資料錄』:
3.png
2010-5-13 01:02


了解了Recordset物件內的基本結構,我們可以清楚的知道Fields集合物件基本上就是一個『陣列』,因此我們就可以利用陣列的特性,也就是可以利用『Count』屬性配合『For』迴圈敘述來列舉出Field物件!
4.png
2010-5-13 01:02



另外我們還可以搭配下方屬性MoveFirst及BOF將所有資料讀取
改變目前資料表的方法

  • MoveNext:移至下一筆資料使其成為現用資料錄
  • MovePrevious:移至前一筆資料使其成為現用資料錄
  • MoveFirst:移至第一筆資料使其成為現用資料錄
  • MoveLast:移至最後一筆資料使其成為現用資料錄
  • BOF:資料錄指標是否移至第一筆資料錄之前
  • EOF:資料錄指標是否移至最後一筆資料錄之後
  • AbsolutePosition:設定或傳回現用資料錄的絕對位置


資料表的新增、刪除與修改

  • Addnew:新增資料錄
  • Update:更新資料錄
  • CancelUpdate:取消更新資料
  • Delete:刪除資料錄



下例即是新增資料錄的使用方法,請注意:『rs』是一個我們自行建立的Recordset物件:
  1. rs.addnew
  2. rs("客戶編號")="A100"
  3. rs("客戶名稱")="麻辣學園"
  4. rs("住址")="台灣省台北縣"
  5. rs.update
複製代碼
注意
當我們使用『Addnew』方法加入新資料後,最後一定還要加上呼叫『Update』方法來將資料錄更新,如此一來新增的資料才會被存進資料庫檔案中!
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

ADO物件群之Command物件
Command物件
    Command 物件負責對資料庫提供請求,也就是傳遞指定的SQL指令,即執行Action Query指令,建立方式如下:
1.png
2010-5-13 01:15


何謂Action Query指令?
Action Query指令是指能夠寫入資料的指令,可分為以下幾種:

Delete 指令:刪除資料錄,語法如下:
  1. Delete From 資料表 Where 條件式
複製代碼
例如:我們要將『員工』資料表中『年齡』已經超過『60』歲的人員資料刪除
  1. Delete From 員工 Where 年齡 > 60
複製代碼
注意:如果指令中的 『Where 條件式』忽略掉而沒使用,則所有的資料可是都會被刪除的喔!也就是說資料表的內容將會是空的。

Update 指令:更新資料錄,語法如下:
  1. Update 資料表 set 運算式
複製代碼
通常我們都會利用Updata指令來進行數學的運算,例如:公司要進行年度薪資調整,因此我們要將『員工薪資』資料表中『薪資』欄位值提高五個百分比:
  1. Update 員工薪資 set 薪資 = 薪資*1.05
複製代碼
Insert Into 指令:新增資料錄,語法如下:
  1. Insert Into 資料表(欄位串列) Values(欄位串列)
複製代碼
例如:公司加入了新的成員,我們要在『員工』資料表中加入這位新員工的資料
  1. Insert Into 員工(姓名,年齡) Values(楊小誌,28)
複製代碼
注意:欄位名稱與欄位值必須相對應!
  1. Insert Into 資料表(欄位一,欄位二,...) select ...
複製代碼
此格式乃是將Select指令所選取的資料錄新增至另一個資料表中。
注意:此格式中的兩個資料表必須是預先就已經建立完成的呦!

Select Into 指令:建立新資料錄,語法如下:
  1. Select * Into 新資料表 From 資料表 Where 條件式
複製代碼
此格式乃是將所選取的資料錄新增至另一個『新的』資料表中。
例如:我們要將『員工薪資』資料表中『薪資』欄位值高於5萬元的員工人員資料建立成另外一個新的『高薪人員』資料表
  1. Select * Into 高薪人員 From 員工薪資 Where 薪資>50000
複製代碼
如何執行Action Query指令
在要執行 Action Query 指令非常簡單,我們只要將Action Query 指令指定給『Command』物件的『CommandText』屬性,然後再呼叫『Command』物件的『Execute』方法執行Action Query指令,如下圖所示:
2.png
2010-5-13 01:15

注意:

  • 『cmd』是一個我們已經建立好的『Command』物件,而『SQL』則是我們要執行的Action Query指令。
  • Action Query指令的使用時機:針對大量資料的刪除、新增與更新,其效率較高。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

        靜思自在 : 甘願做、歡喜受。
返回列表 上一主題