3.3.3 数据库查询
在前面两个小节中已经简单介绍了ADO对象,以及3大主管对象(Connection、Command、RecordSet),并且也已经把如何快速并方便地获取到数据库字符串的方法提供给了读者。从这一节开始就要开始进入ADO这一章的重头戏,也就是数据库的自动化操作,这里需要把前面所讲过的知识都串起来,并通过一个最简单的数据库查询的例子来让大家掌握,如何正确地使用ADO来对数据库进行操作。
实例1:使用where语句查询某数据表的某个字段值
(1)需要有一个数据库来支持我们的脚本。这里直接使用mysql数据库。
(2)首先在数据库里新建一个数据表,如图3-25所示。
图3-25
(3)创建ADO组件来查询数据表中name为zzxxbb112的age是多少:
Dim adoConn '定义ADO连接对象 Dim ConnectionStr '定义数据库连接字符串 '获取数据库连接字符串 ConnectionStr = "Driver=MySQL ODBC 5.1 Driver;"+ _ +"SERVER=localhost;UID=root;PWD=root;DATABASE=test;PORT=3306" '获取数据库查询语句 sqlStr = "select * from user where name = 'zzxxbb112' " '创建数据库连接对象 Set adoConn = CreateObject("adodb.Connection") '利用数据库连接字符串打开数据库 adoConn.Open ConnectionStr '执行sql语句并返回对应的结果集 Set adoRst = adoConn.Execute(sqlStr) '获得结果集中年龄字段的值 MsgBox adoRst.Fields.Item("age").Value '关闭数据库 adoConn.Close '释放数据库对象 Set adoConn = Nothing |
分析:
以上脚本首先是定义了连接字符串和SQL语句字符串这两个变量,接着就是创建ADO.Connection对象,通过数据库连接字符串打开数据库连接,这些都和上一小节中的例子一样,不过接下来这句Execute就是最关键的地方了,在ADO的3大主管之一的connection对象中存在一个Execute方法,方法参数为SQL语句字符串,此方法可以对数据库直接进行SQL语句执行操作,并且能够对其执行结果进行返回,返回的对象为3大主管对象的另一个对象RecordSet。最后通过RecordSet对象的Field属性获取到age字段的值。最后再关闭数据库,释放数据库对象,这样一个最简单的数据库查询的例子就完成了。
在上面的例子中,如果遇到一些比较特殊的情况,可能脚本就会失效了,举个最简单的例子,之前那个实例是“使用where语句查询name为zzxxbb112这条记录中的age字段值”,那么现在重新更改一下要求,内容为“使用where语句查询age为50的name值”,细心的读者一定会发现,目前数据表有两条age为50的,通过select语句也可以查到:“select * from user where age=50;”,如图3-26所地。
图3-26