2 编辑和修改数据 
  Recordset对象有一些基础特性,如属性、集合和方法等。例如,在打开Recordset之前需要指定游标类型、游标位置和加锁类型。游标打开之后,用户可以增加新记录、编辑和删除数据或者简单导航记录集。当然还有众多其他特性,如排序、查找和索引Recordset。我们主要介绍对数据的编辑和修改操作方法,其他的属性和方法读者可以查看相关的文献。
 (1) AddNew方法
  使用ADO在SQL Server 中编辑数据十分简单。为在表中添加新记录,只须使用Recordset对象的AddNew方法,如程序清单6.14所示。在调用该方法之后,就能设置字段值,然后调用Update方法以保存修改的结果。
 (13)程序清单6.14 向表中添加一条新记录
  '---创建Connection对象
   set objConn = Server.CreateObject (" ADODB.Connection")
  '---创建Command对象
   set objCmd = Server.CreateObject (" ADODB.Command")
  '---创建Recordset对象
   set objRS = Server.CreateObject("ADODB.Recordset" )
  '----通过连接字符串:Server的OLE DB提供者(SQLOLEDB)使用没有密码的用户名"sa",
  '---创建对名为misserver的服务器的连接,访问名为pubs的数据库

   objConn.Open "Provider=SQLOLEDB.1;User ID=sa;" & _
   "Password=;Initial Catalog=pubs;Data Source=misserver"
   set objCmd.ActiveConnection = objConn
  '--- 创建连接参数
   objCmd.CreateParameter("percentage", adInteger, adParamInput,,50)
   objCmd.CommandText = "authors"
  '---设置锁类型
   objRS.Open objCmd, , adOpenStatic, adLockOptimistic
  '-- 添加新记录,填写数据并更新
   objRS.AddNew
   objRS("au_id") = "123-45-6789"
   objRS("au_lname") = "Papa"
   objRS("au_fname") = "Colleen"
   objRS("phone") = "919 555-1234"
   objRS("address") = "1 Lois Lane"
   objRS("city") = "Metropolis"
   objRS("state") = "NY"
   objRS("zip") = "12345"
   objRS("contract") = False
  '-- 添加的新记录写入数据库
   objRS.Update

 (2) Update方法
  更新数据值只须简单地到希望修改的记录和字段,设置新值后使用Update方法保存即可。和其他数据访问工具不同,ADO不需要开发者执行Edit方法以开始编辑记录。只要用户改变一个字段的值,ADO便认识到开发者正在编辑,于是隐含有编辑指令。程序清单6.15显示如何使用ADO编辑数据。
 (14) 程序清单6.15 在表中编辑现有记录
   set objConn = Server.CreateObject("ADODB.Connection")
   set objCmd = Server.CreateObject("ADODB.Command")
   set objRS = Server.CreateObject("ADODB.Recordset")
   objConn.Open "Provider=SQLOLEDB.1;User ID=sa;" & _
   "Password=;Initial Catalog=pubs;Data Source=misserver"
   set objCmd.ActiveConnection = objConn
   objCmd.CommandText = "SELECT * FROM authors WHERE au_lname = 'Papa' "
   objRS.Open objCmd, , adOpenStatic, adLockOptimistic
  '---编辑数据
   objRS("phone") = "919 555-5000"
   objRS.Update
  程序的其它注解同前面.

 (3) Delete方法
  从表中删除记录更为简单,所需做的只是找到希望删除的记录然后调用Delete方法。程序清单6.16显示Delete方法的使用。
 (15) 程序清单6.16 从表中删除现有记录
   set objConn = Server.CreateObject("ADODB.Connection")
   set objCmd = Server.CreateObject("ADODB.Command")
   set objRS = Server.CreateObject("ADODB.Recordset" )
   objConn.Open "Provider=SQLOLEDB.1;User ID=sa;" & _
   "Password=;Initial Catalog=pubs;Data Source=misserver"
   set objCmd.ActiveConnection = objConn
   objCmd.CommandText = "SELECT * FROM authors WHERE au_lname = 'Papa' "
   objRS.Open objCmd, , adOpenStatic, adLockOptimistic
   objRS.Delete
  注释:程序的其它注解同前面

 (4)Find方法
  ADO2.0的另一个新特性是查找指定记录。为此使用新的Find方法查找指定记录,Find方法的语法格式为:
   recordset.Find criteria, skipRows, searchDirection, start
  其中:
 ・ criteria指定查找的行,是一个字符串表达式,基本上是SQL WHERE 短语去掉WHERE关键字。
 ・ start参数指出记录集的一个书签行作为查找的开始。
 ・ skipRows参数指定和开始点相关的行开始查找。默认为当前行,即0。换句话说,skipRows是start参数的偏移。
 ・ searchDirection指出查找的方向:向前或向后。

  程序清单6.17显示Find方法如何使用选择条件查找�"NC"洲的作者。
 (16)程序清单6.17 查找指定记录
   set objConn = Server.CreateObject("ADODB.Connection")
   set objCmd = Server.CreateObject("ADODB.Command")
   set objRS = Server.CreateObject("ADODB.Recordset" )
   objConn.Open "Provider=SQLOLEDB.1;User ID=sa;" & _
   "Password=;Initial Catalog=pubs;Data Source=misserver"
   strSQL = "SELECT * FROM authors"
   objRS.CursorLocation = adUseClient
   objRS.Open strSQL, objConn, adOpenStatic
  '---查找字段State值为"NC"的记录
   objRS.Find "state = 'NC'"
  如果有数行符合条件,可以重新使用Find方法和参数,只需改变skipRows参数。简单地改变值为1 ,它就开始从当前行之后查找