分类:
2008-10-15 16:44:49
Winrunner中有一个非常好用的数据库检查点功能,它可以提供简洁的数据库连接和检查,只要对ODBC稍作了解即可简单几步就操作完成。但是如果你想对数据库进行更多更“个性化”的操作,则只有自己编写脚本语言来连接和操作了,下面简单介绍几个数据库连接和操作的常用函数,同样是以SQL Server中TD数据库的为例,涉及到的函数有:db_connect,db_execute_query,db_get_field_value,db_get_row,db_get_headers,split,db_disconnect
例子(已经可以运行):
# db_connect连接数据库
if(db_connect("query1","DSN=TD_DOG;Descrīption=TD_DOG;UID=td;PWD=tdtdtd;APP=WinRunner;WSID=TESTLAB2;DATABASE=gpt_gogs_db",30)!=0)
report_msg("connect error");
else
report_msg("cnnnect ok");
# 给查询语句赋值
sql = "select bg_bug_id,bg_status from bug where bg_status='closed'";
# 执行查询,sql_result保存查询到几条记录,只是记录的行数而非记录内容
db_execute_query("query1",sql,sql_result);
report_msg(sql_result);
# db_get_field_value返回指定行,指定列的单元格内容,注意参数中第一行为#0
sql_record = db_get_field_value("query1","#0","bg_bug_id");
report_msg(sql_record);
# db_get_row是返回指定行的查询内容,如果你一行中包含很多列,则这一行所有列的制都返回,第一行同样是以0表示
db_get_row("query1",0,sql_row);
report_msg(sql_row);
# split函数用来分割不同列的值,并保存在数组中(这里我保存在数组line_array里),函数的返回值是数组元素个数,数组第一个元素下标为1
sql_row_num = split(sql_row,line_array);
for(x=1;x<=sql_row_num;x++) # 循环输出数组中的内容
report_msg(line_array[x]);
# db_get_headers函数用来得到查询中的“列头”,在这里例子中我查询两列:bg_bug_id,bg_status 于是那就返回这两列的名字
db_get_headers("query1",column_num,headers);
report_msg(column_num);
# 同样使用split函数把两列的名字存到数组中去
sql_column_num = split(headers,header_array);
for(x=1;x<=sql_column_num;x++)
report_msg(header_array[x]);
# 最后关闭数据库连接
db_disconnect("query1");