51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3419|回复: 6
打印 上一主题 下一主题

[Robot] 求助SQA Basic连接数据库语法变量问题!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-3-17 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
打开robot使用SQA Basic语言编写连接数据库相关参数语句时,如果sql语句中的where后面的条件不想用常量控制而使用变量,如select ..from .. where name=???, "name"后的值如果是变量该如何写?我连接的是oracle9i数据库,目前在robot的脚本定义了一个变量,也能编译不报错,但运行时提示sql语句那不识别的变量,有点迷茫,不知道到底该在哪里声明这个变量才可以?请有经验的人事指点!

注:部分代码
    dim a as string
    set rs=createobject("adodb.recordset")
    sql="select 字段名 from 表名 where 字段名 =变量"
    rs.open sql,conn
在sql字符串中如果把变量写进sql语句才能运行?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2015-3-26 16:26
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2008-3-17 14:28:59 | 只看该作者

    回复 1# 的帖子

    直接使用变量?
    可以重新组织SQL语句:
    1  字段是数字型
                 sql="select 字段名 from 表名 where 字段名 =" & 变量
    2  字段是字符型
                 sql="select 字段名 from 表名 where 字段名 =‘" & 变量  &  "'"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2008-3-17 14:42:52 | 只看该作者

    感谢二楼的回复!

    好象看明白了,我记得robot里如果是字符串连接变量都是加&,比如inputkeys "aaaaa"&变量名;
    C#.net中好象是where 字段名="+变量名+";但是如果是子查询的话,是不是一样啊?
    如sql="select * from.......where 字段名 in(select * from.......where 字段名2="&变量名&)",这样可以吗?
    还有问题就是,我这个变量在前面脚本里取的是object类型的数据(变量名=rs("字段名")),这样的话编译就又有问题了......
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-3-26 16:26
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2008-3-17 15:10:04 | 只看该作者

    回复 3# 的帖子

    子查询一样

    第二个不知具体错误是什么

    你可以试试     变量名=rs.fields("字段名")
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2008-3-17 15:28:00 | 只看该作者

    就是使用了rs后出现的问题

    dim a as string
    dim conn As Object
    dim rs As Object
    dim rs2 as object
    dim strconn,sql,sql2 As String
    Set conn = CreateObject("ADODB.Connection")
    strconn="... ..."
    ... ...

    Set rs = CreateObject("ADODB.Recordset")
    sql = "select to_char(max(flowid)) as flowid from project_flow  where fstate = '处理中'"   
    rs.Open sql,conn

      a=rs.fields("flowid")  
      set rs2=createobject("adodb.recordset")
      sql2="select logonname from sys_user where userid in (select cl_lrqx from lcsj_lcdqxx where lcmc =' "&a&" ')"
    现在的问题就是红色这条语句,提示Variable 'a' type conflict,是不是变量a类型不匹配啊?

    [ 本帖最后由 bb64844866 于 2008-3-17 15:33 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-3-26 16:26
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
    发表于 2008-3-18 16:19:44 | 只看该作者
    有可能,强制转换一下 ,用cstr(a)

    a 和 & 之间加上空格
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-3-24 17:04:25 | 只看该作者

    问题已解决,非常感谢!

    连接字符串可以用+,即"+变量名+",和C#一样...如果像您说的&还确实得加上空格,要不编译过不去...呵呵
    还有那个cstr(表达式)函数也很好使,真是太感谢了!以后有问题再求助啦!

    [ 本帖最后由 bb64844866 于 2008-3-24 17:05 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-25 01:31 , Processed in 0.076934 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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