51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3170|回复: 11
打印 上一主题 下一主题

WR中我添加数据后,查询数据库验证出现错误!高手给看看!!!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-12-12 16:48:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在一个添加界面添加一个用户后,我哪个不能用数据库检查点实现,所以我想用   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 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-12-12 17:20:21 | 只看该作者

建立数据库连接

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就是查询出来满足条件的记录.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-12-12 17:27:53 | 只看该作者
谢谢各位!我这样做了,不知道那错了,给看看!
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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-12-13 10:13:27 | 只看该作者
感觉逻辑上有点问题,你应该先判断数据库连接是否成功,然后再做执行查询的操作。而且脚本里的第一行,少了个分号,不知道是误写还是实际存在,如果数据库连接成功的话,应该是没有问题的。

[ 本帖最后由 piao_604 于 2006-12-13 10:17 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-12-13 10:20:44 | 只看该作者
感觉逻辑上有点问题,你应该先判断数据库连接是否成功,然后再做执行查询的操作。而且脚本里的第一行,少了个分号,不知道是误写还是实际存在,如果数据库连接成功的话,应该是没有问题的。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-12-13 10:52:34 | 只看该作者
感谢各位的答复!我贴上去的是我在调试中写的,所以逻辑有点乱,不过感谢你的建议,我以后会在这方面注意的!谢谢你们!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-12-13 12:40:19 | 只看该作者
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,    我那样做正确吗?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-12-13 15:50:18 | 只看该作者
谢谢各位!在大家的帮助下,第一个问题终于解决了,有谁知道第二个和第三个问题的解决方法,请赐教!谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-12-13 16:20:49 | 只看该作者
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是个变量
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2006-12-13 17:04:05 | 只看该作者
谢谢piao_604 多次指点,还有一个问题,db_disconnect("query1")得到的值是-10160是说明数据库连接关闭了吗?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-11-17 09:09
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]测试连长

    11#
    发表于 2006-12-23 18:32:12 | 只看该作者
    Error Code                                 Number                              Description
    E_SESSION_NOT_
    STARTED                               -10160                  The database session was not started.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2006-12-30 10:52:28 | 只看该作者
    收藏,不错的帖子。我也要进行类似的应用。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-22 22:32 , Processed in 0.076099 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表