QTP連接oracle并操作數據庫的方法(3)

發表于:2012-05-04來源:測試窩作者:胡志超  點擊數: 標簽:qtp
Recordset 上的 RecordCount 屬性將產生錯誤。Recordset 對象的游標類型會影響是否能夠確定記錄的數目。對僅向前游標,RecordCount 屬 性將返回 -1,對靜態或鍵集

  Recordset 上的 RecordCount 屬性將產生錯誤。Recordset 對象的游標類型會影響是否能夠確定記錄的數目。對僅向前游標,RecordCount 屬

  性將返回 -1,對靜態或鍵集游標返回實際計數,對動態游標取決于數據源返回 -1 或實際計數。

  8、BOF與EOF屬性

  通常我們在ASP程序中編寫代碼來檢驗BOF與EOF屬性,從而得知目前指標所指向的RecordSet的位置,使用BOF與EOF屬性,可以得知一個

  Recordset對象是否包含有記錄或者得知移動記錄行是否已經超出該Recordset對象的范圍。

  若當前記錄的位置是在一個Recordset對象第一行記錄之前時,BOF屬性返回true,反之則返回false。

  若當前記錄的位置是在一個Recordset對象最后一行記錄之后時,EOF屬性返回true,反之則返回false。

  (BOF與EOF都為True表示在RecordSet里沒有任何記錄。)

  9、Filter 屬性

  為 Recordset 中的數據指定篩選條件,使用 Filter 屬性可選擇性地屏蔽 Recordset 對象中的記錄,已篩選的 Recordset 將成為當前游標。

  這將影響基于當前游標返回值的其他屬性,如 AbsolutePosition、AbsolutePage、RecordCount 和 PageCount,因為將 Filter 屬性設置為特

  定值可將當前記錄移動到滿足新值的第一個記錄。

  這屬性我認為相當有用處,有的時候我們打開了Recordset進行了某些判斷以后我們還想過濾記錄也就是重新調整 sql 語句,難道我們關閉

  Recordset再用新的SQL語句打開?不是,我們用Filter屬性進行過濾,比如說

  rs.open exec,conn,1,1

  if .... then rs.filter="name='xxx'"

  而不是

  rs.open exec,conn,1,1

  if ... then

  rs.close

  exec=exec&" where name='xxx'"

  rs.open exec,conn,1,1

  end if

  實際上再很多地方不得不用到Filter,在以后的ASP技巧中會說到,大家也可以想一下。

  明天繼續說Recordset對象的方法。

  Recordset對象的方法

  1、AddNew 方法

  創建可更新 Recordset 對象的新記錄。

  recordset.AddNew FieldList, Values

  FieldList 可選。新記錄中字段的單個名稱、一組名稱或序號位置。

  Values 可選。新記錄中字段的單個或一組值。如果 Fields 是數組,那么 Values 也必須是有相同成員數的數組,否則將發生錯誤。字段名

  稱的次序必須與每個數組中的字段值的次序相匹配。

  我們一般是

  rs.addnew

  rs("xx")=xx

  rs("xx")=xx

  rs.update

  需要注意的是在立即更新模式(調用 Update 方法時提供者會立即將更改寫入基本數據源)下,調用不帶參數的 AddNew 方法可將 EditMode

  屬性設置為 adEditAdd。提供者將任何字段值的更改緩存在本地。調用 Update 方法可將新記錄傳遞到數據庫并將 EditMode 屬性重置為

  adEditNone。如果傳送了 Fields 和 Values 參數,ADO 則立即將新記錄傳遞到數據庫(無須調用 Update),且 EditMode 屬性值沒有改變

  (adEditNone)。

  可能大家會問在ASP中使用ADO的AddNew方法和直接使用“Insert into...”語句有和不同?那種方式更好?答:ADO的AddNew方法只是將

  “Insert into ”語句封裝了起來,所以,當對大量數據進行操作的時候,直接使用SQL語句將會大大加快存取數據的速度,因為他減少了ADO

  的“翻譯”時間。

  2、Delete 方法

  刪除當前記錄或記錄組。

  recordset.Delete AffectRecords

  AffectRecords AffectEnum 值,確定 Delete 方法所影響的記錄數目,該值可以是下列常量之一。

  AdAffectCurrent 默認。僅刪除當前記錄。

  AdAffectGroup 刪除滿足當前 Filter 屬性設置的記錄。要使用該選項,必須將 Filter 屬性設置為有效的預定義常量之一。

  adAffectAll 刪除所有記錄。

  adAffectAllChapters 刪除所有子集記錄。

  使用立即更新模式將在數據庫中進行立即刪除,否則記錄將標記為從緩存刪除,實際的刪除將在調用 Update 方法時進行。

  3、Update 方法

  保存對 Recordset 對象的當前記錄所做的所有更改

  recordset.Update Fields, Values

  Fields 可選。變體型,代表單個名稱;或變體型數組,代表需要修改的字段(一個或多個)名稱及序號位置。

  Values 可選。變體型,代表單個值;或變體型數組,代表新記錄中字段(單個或多個)值。

  如果希望取消對當前記錄所做的任何更改或者放棄新添加的記錄,則必須調用 CancelUpdate 方法。

  4、CancelUpdate 方法

  recordset.CancelUpdate

  使用 CancelUpdate 方法可取消對當前記錄所作的任何更改或放棄新添加的記錄。在調用 Update 方法后將無法撤消對當前記錄或新記錄所做

  的更改,如果在調用 CancelUpdate 方法時添加新記錄,則調用 AddNew 之前的當前記錄將再次成為當前記錄。如果尚未更改當前記錄或添加

  新記錄,調用 CancelUpdate 方法將產生錯誤。

  5、Find 方法

  搜索 Recordset 中滿足指定標準的記錄。如果滿足標準,則記錄集位置設置在找到的記錄上,否則位置將設置在記錄集的末尾。

  Find (criteria, SkipRows, searchDirection, start)

  criteria 字符串,包含指定用于搜索的列名、比較操作符和值的語句。

  SkipRows 可選,長整型值,其默認值為零,它指定當前行或 start 書簽的位移以開始搜索。

  searchDirection 可選的 SearchDirectionEnum 值,指定搜索應從當前行還是下一個有效行開始。其值可為 adSearchForward 或

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97