VBS:SQL记录查询、更新、删除
2012-09-10 13:29
253 查看
Set conn = createobject("ADODB.Connection") conn.Open"Provider=OraOLEDB.Oracle.1;Password=sx;Persist Security Info=True;User ID=pipfgys_sx_user;Data Source=pip132" Set res = createobject("ADODB.Recordset") res.Open"select * from aa ",conn,2,2 '遍历查询结果 Do While Not res.EOF iUser_pwd="" For i=0 To res. Fields.Count - 1 iUser_pwd = iUser_pwd+CStr(res(i))+"," Next print iUser_pwd res.movenext lOOP '更新语句 sqlstr="update aa set a1=1 where a1=100" Conn.Execute(sqlstr) '删除语句 sqlstr="delete aa where a1=1" Conn.Execute(sqlstr) res.close res.Open"select * from aa ",conn,2,2 '遍历查询结果 Do While Not res.EOF iUser_pwd="" For i=0 To res. Fields.Count - 1 iUser_pwd = iUser_pwd+CStr(res(i))+"," Next print iUser_pwd res.movenext lOOP res.close '关闭记录集 Set res=nothing '释放对象 conn.close '关闭连接 Set conn=nothing '释放对象 ============================================================== RecordSet对象的详细用法 RecordSet对象(代表来自基本表或命令执行结果的记录的全集。) 为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据: rs = Server.CreateObject("ADODB.RecordSet") rs.Open(sqlStr,conn,1,A) RS.OPEN SQL,CONN,A,B A: ADOPENFORWARDONLY(=0) 只读,且当前数据记录只能向下移动 ADOPENKEYSET(=1) 只读,当前数据记录可自由移动 ADOPENDYNAMIC(=2) 可读写,当前数据记录可自由移动 ADOPENSTATIC(=3) 可读写,当前数据记录可自由移动,可看到新增记录 B: ADLOCKREADONLY(=1) 缺省锁定类型,记录集是只读的,不能修改记录 ADLOCKPESSIMISTIC(=2) 悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。 ADLOCKOPTIMISTIC(=3) 乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。 ADLOCKBATCHOPTIMISTIC(=4) 批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。 当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。 对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间, 数据在这段时间被更新。这减少了资源的使用。 在RecordSet组件中,常用的属性和方法有: rs.Fields.Count:RecordSet对象字段数。 rs(i).Name:第i个字段的名称,i为0至rs.Fields.Count-1 rs(i):第i个字段的数据,i为0至rs.Fields.Count-1 rs("字段名"):指定字段的数据。 rs.RecordCount:数据记录总数。 rs.EOF:是否最后一条记录。 rs.MoveFirst:指向第一条记录。 rs.MoveLast:指向最后一条记录。 rs.MovePrev:指向上一条记录。 rs.MoveNext:指向下一条记录。 rs.GetRows:将数据放入数组中。 rs.Properties.Count:ADO的ResultSet或Connection的属性个数。 rs.Properties(item).Name:ADO的ResultSet或Connection的名称。 rs.Properties:ADO的ResultSet或Connection的值。 rs.close():关闭连接。 Recordset 对象的属性 1、CursorType 属性 AdOpenForwardOnly: 仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提 高性能。(顾名思义,这种游标只能向前移动。然而,由于这种游标功能有限,将它用于系统资源时是非常有效的。) AdOpenKeyset: 键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似 。仍然可以看见其他用户更改的数据。(KeySet游标允许你看见自它创建起其他用户所做的修改,然而你却不能看到其他用户增加或删除的记 录。) AdOpenDynamic :动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书 签操作。(此类型的游标功能强大同时也是耗费系统资源最多的游标。Dynamic游标可以看到他们保存记录集合的所有变化。使用Dynamic游标 的用户可以看到其他用户所做的编辑、增加、删除。如果数据提供者允许这种类型的游标,那么它是通过每隔一段时间从数据源重取数据来支 持这种可视性的。毫无疑问这会需要很多的资源。 ) AdOpenStatic:静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。 (Static类游标只是数据的一幅快照。这就是说,它无法看到自它创建以后其他用户对RecordSet所做的修改。采用这类游标你可以向前和向后 航行。由于其功能简单,资源的需求比Dynamic要小! ) 需要注意的是:一旦打开RecordSet,你就无法改变CursorType属性。但是,如果你首先关闭RecordSet,改变CursorType属性,然后重新打开 RecordSet,那么你仍可以有效地改变游标的类型! 2、LockType 属性 在任何同时可被多用户修改的数据库应用程序中,你必须处理可能发生的多个用户同时对同一条记录进行操作时的情况。当这种情况出现时, 数据的完整性就会受到威胁,这是因为一个用户可能会在不自觉地在保存自己所做的修改时覆盖他人的修改。到时候你会觉得自己好象是没有 做事。为了处理这种情况。ADO允许你在对RecordSet对象进行更新时决定并发事件控制的类型,当一个用户编辑时,如何由他对记录进行锁定 。这就是由LockType属性所决定的。这个属性有四个值: adLockReadonly:默认值,只读。无法更改数据。(这是RecodSet的默认值,如果你把锁定的方式设为该值,那么你将不能更新 Recordset。 ) adLockPessimistic:保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。( 如果设置为此类锁定,记录被锁定,且只有在编辑开始到将记录更新的提交给数据提供者这段时间内进行编辑的用户才可以访问! ) adLockOptimistic:开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用 Update 方法时锁定记录。(只有在将数据提交给数据提供 者的那一瞬间才把记录锁定。) adlockBatchOptimistic:开放式批更新。用于与立即更新模式相反的批更新模式。(设定为这种类型的锁定制式将被称为批量更新模式的 RecordSet。 可以加快更新RecordSet修改数据的速度,但因为同时更新多个记录,它也会恶化与并发访问相关的问题! ) 3、AbsolutePage 属性 AbsolutePage属性设定当前记录的位置是位于哪一页的页数编号;使用PageSize属性将Recordset对象分割为逻辑上的页数,每一页的记录数为 PageSize(除了最后一页可能会有少于PageSize的记录数)。这里必须注意并不是所有的数据提供者都支持此项属性,因此使用时要小心。 与AbsolutePosition属性相同,AbsolutePage属性是以1为起始的,若当前记录为Recordset的第一行记录,AbsolutePage为1。可以设定 AbsolutePage属性,以移动到一个指定页的第一行记录位置。
相关文章推荐
- 步步为营VS 2008 + .NET 3.5(9) - DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除
- 步步为营VS 2008 + .NET 3.5(10) - DLINQ(LINQ to SQL)之调用存储过程的添加、查询、更新和删除
- sql查询重复记录、删除重复记录方法大全
- sql查询重复记录、删除重复记录方法大全
- oracle_SQL 实验查询及删除重复记录 依据条件 (row)
- Oracle 查询并删除重复记录的SQL语句
- SQL怎么查询重复记录,删除重复记录
- Linq的技术太强大了分享一下(linq to sql 的插入、更新、查询、删除)
- linqtosql - 插入 删除 更新 查询
- sql存储过程 1查询;2插入;3更新;4删除
- Oracle中查询并删除重复记录的SQL语句详解
- 第二章 MySQL数据库基础-查询、插入、更新、删除表记录
- sql查询重复记录、删除重复记录方法总结
- 步步为营VS 2008 + .NET 3.5(9) - DLINQ(LINQ to SQL)之执行SQL语句的添加、查询、更新和删除
- 步步为营VS 2008 + .NET 3.5(10) - DLINQ(LINQ to SQL)之调用存储过程的添加、查询、更新和删除
- 一次从项目数据库中的某个表中插入或者更新或者删除n条记录操作t_sql语句
- SQL查询重复记录,删除重复记录
- sql查询重复记录、删除重复记录方法大全
- 查询及删除重复记录的SQL语句
- Oracle 查询并删除重复记录的SQL语句