51Testing软件测试论坛
标题:
关于winrunner的数据库DML操作
[打印本页]
作者:
魏乐
时间:
2005-9-15 20:41
标题:
关于winrunner的数据库DML操作
请教各位大虾,winrunner 是否能进行数据库的DML(insert,delete等)操作。
我试了半天,好像不行。我想在脚本运行前先在数据库插入测试数据,然后进行测试。有没有好的方法推荐。谢谢先
作者:
aswoon911
时间:
2005-9-16 09:48
好像不行得,自己拿VB,或者PB做个数据库前台吧,简单的
作者:
魏乐
时间:
2005-9-25 18:12
标题:
找到了原来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");
作者:
aswoon911
时间:
2005-9-28 20:35
高人啊,let me try
作者:
aswoon911
时间:
2005-9-28 21:46
业已验证,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);
作者:
shengyan
时间:
2005-10-28 11:09
我也收藏啦,谢谢
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2