关于winrunner的数据库DML操作
请教各位大虾,winrunner 是否能进行数据库的DML(insert,delete等)操作。我试了半天,好像不行。我想在脚本运行前先在数据库插入测试数据,然后进行测试。有没有好的方法推荐。谢谢先 好像不行得,自己拿VB,或者PB做个数据库前台吧,简单的
找到了原来db_execute_query 是支持DML操作的,并且直接提交事务
如下是我找到的资料(转载)。大家可以参照如下方法使用。一般主要是插入记录,删除,修改,查询记录。这几种方式。
例子如下:
### db_connectd的连接串,根据需要可以修改,数据库连接相关参数
### DSN=wdzdb是数据库名字(wdzdb数据源odbc名字)
### UID=TEST (数据库用户名字=TEST)
### PWD=TEST (数据库用户密码=TEST)
### DBQ=WDZDB 数据库服务名字
## -- Create table
## create table DEPT
## (
## DEPTNO NUMBER(2) not null,
## DNAME VARCHAR2(14),
## LOC VARCHAR2(13)
## )
### DEPT 数据表的初始数据如下
## DEPTNO DNAME LOC
## 1 xxx loc1
## 2 bbb loc2
## 3 mmm loc3
r= db_connect("testsession","DSN=wdzdb;UID=TEST;PWD=TEST;DBQ=WDZDB",30);
if(r==E_OK){
db_execute_query ("testsession","SELECT * FROM dept",record_number);
### ******获得查询结果记录数量,这里有点问题,不能够取回记录数量
print(" query record num="&record_num);
###读取当前数据表的字段列表
db_get_headers ("testsession",field_num,headers);
print("## dept table headers ---");
print(headers); ###打印出当前数据表的字段列表
db_get_row("testsession","#0",rowData);###获取当前数据表第一行记录的内容
print("## current row Data");###打印出当前数据表第一行记录的内容
print(rowData );
###读取当前数据表 第1行第2个字段的内容
aaa =db_get_field_value("testsession","#0","#1");## #0实际上就是第一行记录
print("DNAME="&aaa);
###插入记录到数据表dept
#### 插入1个记录到数据表
db_execute_query("testsession","insert into dept values (4,'aa','bb')",i);
i=10;
for(i=10;i<12;i++){
## db_execute_query("testsession","insert into dept (DEPTNO)values("+i+")",k);
#db_execute_query("testsession","insert into dept values ("&k&",'aa','bb')",k);
}
#### 修改记录到数据表
r=db_execute_query("xxx","update dept set DNAME='xxx' where DEPTNO=1",i);
if(r!=E_OK){
print(" ***update当前数据表的内容失败!");
}
###删除当前数据表的内容
r=db_execute_query("testsession","delete from dept where DEPTNO=2",i);
if(r!=E_OK){
print(" *** 删除当前数据表的内容失败!");
}
}
else{
print(" open connection fail");
}
db_disconnect("testsession"); 高人啊,let me try 业已验证,PASS!!
收藏了,多谢!
都是executes the query based on the SQL statement and creates a record set这一句惹得祸,断章取义以为只能执行查询!
另外:
db_execute_query ("testsession","SELECT * FROM dept",record_number);
### ******获得查询结果记录数量,这里有点问题,不能够取回记录数量
print(" query record num="&record_num);
这一句我的脚本也通过,打印记录数,哈哈,我的ODBC是个简单的Access表:
db_execute_query ("testsession","SELECT * FROM Task_Table",record_number);
print("query record num= " record_number); 我也收藏啦,谢谢
页:
[1]