ADO OriginalValue 和 UnderlyingValue 属性

定义和用法

OriginalValue 属性可返回一个 variant 值,该值包含最后一次 Update 或 UpdateBatch 方法调用之前已经存在的字段值。

UnderlyingValue 属性可返回一个 variant 值,该值包含某个字段的当前值。该值不会必要地显示由其他用户造成的更改,且也许不是最新的值。

提示:请使用 Recordset 对象的 Resync 属性来获得 Fields 集合中所有 Field 对象的最新值。

提示:这两种属性可以配合使用可以解决批更新时出现的冲突。

语法

  1. objField.OriginalValue
  2. objField.UnderlyingValue

实例

  1. <%
  2. set conn=Server.CreateObject("ADODB.Connection")
  3. conn.Provider="Microsoft.Jet.OLEDB.4.0"
  4. conn.Open "c:/webdata/northwind.mdb"
  5.  
  6. set rs = Server.CreateObject("ADODB.Recordset")
  7. rs.open "customers", conn
  8.  
  9. set objfield=rs.fields("companyname")
  10.  
  11. 'Some code..................
  12.  
  13. 'Check for changes
  14. rs.movefirst
  15. while rs.eof=false
  16. if objfield.OriginalValue<>objfield.UnderlyingValue then
  17. response.write("Data has changed!<br />")
  18. response.write("Original value: ")
  19. response.write(objfield.OriginalValue & "<br />")
  20. response.write("Current value: ")
  21. response.write(objfield.UnderlyingValue & "<br />")
  22. end if
  23. rs.movenext
  24. next
  25.  
  26. 'More code...................
  27.  
  28. rs.Close
  29. conn.close
  30. %>