Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29954547
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2010-01-16 23:55:13

Vbs操作数据库专题

                                                                                                                                                     整理时间:2010-1-4

整理一下有关于VBS操作数据库的专题

环境是:ACCESS数据库

一、连接数据库方法

Option Explicit

Dim Conn

Set Conn=CreateObject("ADODB.Connection")          注意与ASP的区别哦!

Dim outDateFile

outDateFile = "a.MDB"

Dim ConnStr

ConnStr="DBQ="&outDateFile&";Driver={Microsoft Access Driver (*.mdb)};"

Conn.Open ConnStr

得到了一个连接对象Conn之后就可以正常地拿它进行执行一些SQL命令的操作了!

 

二、执行更新操作的SQL语句

Dim sql

sql = "insert into a(id) values(1)"

Conn.execute sql

Conn.close

插入新记录操作

 

三、查询操作的SQL语句

查询的话可以做一个小专题专门来整理下的!

3.0 游标的类型

ADO,定义了 4 中不同的游标(指针)类型:

  • 动态游标 - 允许您查看其他用户所作的添加、更改和删除
  • 键集游标 - 类似动态游标,不同的是您无法查看有其他用户所做的添加,并且它会防止您访问其他用户已删除的记录。其他用户所做的数据更改仍然是可见的。
  • 静态游标 - 提供记录集的静态副本,可用来查找数据或生成报告。此外,由其他用户所做的添加、更改和删除将是不可见的。当您打开一个客户端 Recordset 对象时,这是唯一被允许的游标类型。
  • 仅向前游标 - 只允许在 Recordset 中向前滚动。此外,由其他用户所做的添加、更改和删除将是不可见的。

可通过 CursorType 属性或 Open 方法中的 CursorType 参数来设置游标的类型。

RS.Open Source,ActiveConnection,CursorType,LockType,Options

CoursorType 指定 Recordset 对象所使用的光标类型。 共有 4 种光标类型:

0 前滚光标,光标只能向前移动,执行效率高。是 Cursor 的默认值;

1 键盘光标,光标可向前或向后移动,Recordset 记录集同步反映自它创建后其他用户所作的修改和删除,但却不能同步反映自它创建后其他用户新增加的记录;

2 动态光标,光标可向前或向后滚动,任何时候 Recordset 记录集都同步反映其他用户的任何操作;

3 静态光标,光标可向前或向后移动,自创建后无法同步反映其他用户所做的任何操作,它的功能简单但消耗资源少。

 

LockType 表示编辑时记录的锁定类型。它决定了当不止一个用户试图同时改变一个记录时,Recordset 如何处理数据记录。 0 只读锁定,记录只读,不能更新 Recordset , LockType 的默认值;

1 悲观锁定,编辑记录开始立刻锁定,直到提交给数据提供者;

2 乐观锁定,一次锁定一条记录,只有调用 Update 方法提交数据时才锁定记录;

3 乐观的批量更新,允许同时更新多条记录。

Bof 判断记录指针是否到了第一条记录之前。

Eof 判断记录指针是否到了最后一条记录之后。

RecordCount 返回 Recordset 对象的记录数,(在使用键盘光标时,该属怀返回 的可能是不太准确的数值;一般情况下,并不用这种方法来统计 Recordset 中的记录数,因为它的性能并不稳定)

 

 

 

 

3.1 查询的记录只有一条的情况即 select * from table where id=1

Dim sql

sql = "select id from  a where i=3"

Dim rs

Set rs = CreateObject("ADODB.RecordSet")

rs.open sql,Conn,1,1

MsgBox rs.RecordCount

If rs.eof=False Then

       MsgBox rs.fields("id").value                提取字段内容值

End If

Conn.close

 

3.2 查询多条记录的操作

 

 

Dim rs

Set rs = CreateObject("ADODB.RecordSet")

rs.open sql,Conn,1,1

MsgBox rs.RecordCount                            符合条件记录个数

If rs.eof=False Then

       While Not rs.eof                                遍历此数据集

       MsgBox rs.fields("id").value

       rs.movenext                                       数据集

       wend

End If

Conn.close

 

 

 
阅读(1127) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~