标题为QTP对数据库的操作,其实应该改为QTP/VBS对数据库的操作。因为QTP中就是通过vbs完成数据库操作的。以access为例。
通过ADO对数据库访问的步骤如下:
a.创建一个到数据库的 ADO 连接
b.打开数据库连接
c.创建 ADO 记录集
d.从记录集提取您需要的数据
e.关闭记录集
f.关闭连接
1. 首先,如何创建一个数据库的DSN数据源?
a. 打开“控制面板-管理工具-数据源 (ODBC)-MS ACCESS Database”。
b. 点击“Add”并选择“MS ACCESS Database”,然后给数据源取一个名称,如:accessdatasource。
c. 在“数据源”一栏里输入数据库的别名。
d. 在数据库一拦中点“选择”,选中你建立的数据库位置即可。
e. 点“确定”完成。
2. 获取数据库连接串
创建一个*.udl文件,双击,即可选择刚才创建的数据源,确认后,数据库连接串就生成在该udl文件中了,记事本打开后如下内容:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=MSDASQL.1;Password=nyname;Persist Security Info=True;User ID=userna;Data Source=accessdatasource
3. 撰写脚本实现数据库操作:
1)查询
Dim res,Conn,strConn,sql
strConn="Provider=MSDASQL.1;Password=nyname;Persist Security Info=True;User ID=userna;Data Source=accessdatasource"
sql="select * from t_address"
'建立记录集对象
Set res=CreateObject("adodb.recordset")
'建立数据库连接对象
Set Conn=CreateObject("adodb.connection")
'打开数据库连接
Conn.open strConn
'执行查询
res.open sql,Conn '打开查询的记录集,以访问t_address中数据
'查询所有记录
Do While Not res.eof
'把数据表中的所有记录拼凑在一起
msg=msg&vbTab&res.Fields("id")&vbTab&res.Fields("num")&vbTab&res.Fields("address")&vbNewLine
'游标移动,指向下行记录
res.movenext
Loop
'关闭记录集
res.close
'关闭连接
Conn.close
'释放资源
Set res=Nothing
Set Conn=Nothing
'输出显示
MsgBox msg
2)更新或删除
这里
Dim res,Conn,strConn,sql,Cmd
strConn="Provider=MSDASQL.1;Password=nyname;Persist Security Info=True;User ID=userna;Data Source=accessdatasource"
sql="update t_address set address='HK' where id=3"
'建立数据库连接对象
Set Conn=CreateObject("adodb.connection")
'打开数据库连接
Conn.open strConn
'建立记录集对象
Set res=CreateObject("adodb.recordset") '此句多余,因为更新时不需要返回任何记录,不需要记录集
'建立命令对象
Set Cmd=CreateObject("adodb.command")
Cmd.ActiveConnection=Conn
Cmd.CommandText=sql
'执行更新
Cmd.Execute
Conn.close
'释放资源
Set res=Nothing
Set Conn=Nothing
'输出显示