WR中我添加数据后,查询数据库验证出现错误!高手给看看!!!
我在一个添加界面添加一个用户后,我哪个不能用数据库检查点实现,所以我想用 Insert>get text 取出 其中的会员编码(user_no),然后看数据库中是否有这条记录,如果有,则重新输入。在这个过我有一下问题:1.建立数据库的连接,
2.连接好后,根据get text 怎样能查询出他的记录或者记录的条数!
我这样做了,不知道那错了,给看看!
sql="select user_no from sysadmin_sys_user where user_no='xue123'"
db_connect("query1","DRIVER={Oracle in ora92};SERVER=ORAC9I;UID=SEDS;PWD=SEDS;DBQ=ORAC9I;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;",30);
ddt_open("sysadmin_sys_user",DDT_MODE_READ);
db_execute_query("query1",sql,recorder_number);
report_msg(recorder_number);
if(db_connect("query1","DRIVER={Oracle in ora92};SERVER=ORAC9I;UID=SEDS;PWD=SEDS;DBQ=ORAC9I;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;",30)==E_OK)
report_msg("测试连接成功");
else
{
report_msg("测试连接失败!");
}
我的测试结果是,提示:测试连接成功!recorder_number=-1(应该为1);但我在数据库中查到有一条信息!我的连接或者操作错在那了?
错在那了,各位大侠指点一下!谢谢!
[ 本帖最后由 wonew1228 于 2006-12-12 18:44 编辑 ]
建立数据库连接
1.在本机配置ODBC;2.然后用winrunner的TSL db_connect("flcp",""DSN=flcp;UID=poweruser;PWD=power;SERVER=drflcp;",30)
不知道你的数据库是什么,这是ORACLE的连接方式
3.获取会员编码可以用edit_get_text("窗口的名字",text);
4.连接好后,查询他的记录条数的方法
db_execute_query("flcp","select * from 表 where 表字段=text",record_number);
其中record_number就是查询出来满足条件的记录. 谢谢各位!我这样做了,不知道那错了,给看看!
sql="select user_no from sysadmin_sys_user where user_no='xue123'"
db_connect("query1","DRIVER={Oracle in ora92};SERVER=ORAC9I;UID=SEDS;PWD=SEDS;DBQ=ORAC9I;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;",30);
ddt_open("sysadmin_sys_user",DDT_MODE_READ);
db_execute_query("query1",sql,recorder_number);
report_msg(recorder_number);
if(db_connect("query1","DRIVER={Oracle in ora92};SERVER=ORAC9I;UID=SEDS;PWD=SEDS;DBQ=ORAC9I;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;",30)==E_OK)
report_msg("测试连接成功");
else
{
report_msg("测试连接失败!");
}
我的测试结果是,提示:测试连接成功!recorder_number=-1(应该为1);但我在数据库中查到有一条信息!我的连接或者操作错在那了?
再次感谢给为大侠的热心帮助!谢谢!
[ 本帖最后由 wonew1228 于 2006-12-12 17:33 编辑 ] 感觉逻辑上有点问题,你应该先判断数据库连接是否成功,然后再做执行查询的操作。而且脚本里的第一行,少了个分号,不知道是误写还是实际存在,如果数据库连接成功的话,应该是没有问题的。
[ 本帖最后由 piao_604 于 2006-12-13 10:17 编辑 ] 感觉逻辑上有点问题,你应该先判断数据库连接是否成功,然后再做执行查询的操作。而且脚本里的第一行,少了个分号,不知道是误写还是实际存在,如果数据库连接成功的话,应该是没有问题的。 感谢各位的答复!我贴上去的是我在调试中写的,所以逻辑有点乱,不过感谢你的建议,我以后会在这方面注意的!谢谢你们! db_connect("query1","DRIVER={Oracle in ora92};SERVER=ORAC9I;UID=SEDS;PWD=SEDS;DBQ=ORAC9I;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;",30);
if(db_connect("query1","DRIVER={Oracle in ora92};SERVER=ORAC9I;UID=SEDS;PWD=SEDS;DBQ=ORAC9I;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;",30)==E_OK)
{
report_msg("测试连接成功");
}
else
{
report_msg("测试连接失败!");
}
ddt_open("sysadmin_sys_user",DDT_MODE_READ);
sql="select sysadmin_sys_user.user_no from sysadmin_sys_user where sysadmin_sys_user.user_no='851'";
db_execute_query("query1",sql,recorder_number);
report_msg(recorder_number);
while(recorder_number == 1)
{
if(recorder_number >= 1)
{
report_msg("该会员编码已经存在,产生随机");
srand();
i = 1+int(rand()*1000);
text = sprintf("%s", i);
#text ="xue"&&tmptext;#在这块想实现xue加数字如xue123, 我那样做正确吗?
report_msg(text);
sql="select sysadmin_sys_user.user_no from sysadmin_sys_user where sysadmin_sys_user.user_no='text'";
db_execute_query("ORAC9I",sql,recorder_number);
report_msg(recorder_number);
}
}
if(recorder_number==0)
{
ddt_close(sysadmin_sys_user);
db_disconnect("query1");
if(db_connect("query1","DRIVER={Oracle in ora92};SERVER=ORAC9I;UID=SEDS;PWD=SEDS;DBQ=ORAC9I;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;",30)==E_OK)
{
report_msg("关闭连接失败");
}
else
{
report_msg("关闭连接成功!");
}
}
现在有几个问题,大家看看,
1.在while循环中的最后一句report_msg(recorder_number);中得到的数据是0,但实际上在数据库中有那个值;
2.用db_disconnect("query1");数据库断开连接失败!怎么回事啊
3.用text ="xue"&&tmptext;#在这块想实现xue加数字如xue123, 我那样做正确吗? 谢谢各位!在大家的帮助下,第一个问题终于解决了,有谁知道第二个和第三个问题的解决方法,请赐教!谢谢! 2.断开连接后的,判断有问题,为什么不直接用db_disconnect("query1")它的返回值直接进行判断,而用连接的判断
3.tmptext= sprintf("%s", i); #取得一个随机的数字
text ="xue"&tmptext ; #得到一个类似xue123的字符串
sql="select sysadmin_sys_user.user_no from sysadmin_sys_user where sysadmin_sys_user.user_no='"&text"\'"; #text是个变量 谢谢piao_604 多次指点,还有一个问题,db_disconnect("query1")得到的值是-10160是说明数据库连接关闭了吗? Error Code Number Description
E_SESSION_NOT_
STARTED -10160 The database session was not started. 收藏,不错的帖子。我也要进行类似的应用。
页:
[1]