51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] qtp执行sql的环境

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-6-6 09:00:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 andyclock 于 2011-6-6 09:03 编辑

简单描述下qtp机器的环境,测试一个系统,qtp同系统客户端装在一个机器上,该机器没装sqlserver,连接DB靠odbc里建个系统DSN,在测试某些场景前需要在DB里预设参数,于是我想把脚本先连DB去预设里面的参数
脚本如下
Dim strsql
Set conn = createobject("ADODB.Connection")
Set comm = createobject("ADODB.command")
conn.Open("DSN=TEST;WSID=SERVER2\SQL2008R2;UID=XXX; PWD=XXX;Database=TEST")
strsql="update sysparam set value='false' where parameter='EnableLocalVersion'"
comm.Execute strsql
但执行下来报错:
The connection can not be used to perform this operation, it is either closed or invalid in this context
Line(7)comm.Execute strsql

网上查了下资料感觉脚本应该没写错,是不是因为没装sqlserver的原因而不能执行?小弟刚接触qtp,无开发经验,还请各位多多指教,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-6-6 09:11:22 | 只看该作者
补充一下,数据库连接是成功的

If conn.state=0 Then            
Reporter.ReportEvent micFail,"testing","数据库连接失败"
else
Reporter.ReportEvent micPass,"testing","数据库连接成功"
End if
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-6-6 11:40:25 | 只看该作者
The connection can not be used to perform this operation, it is either closed or invalid in this context
Line(7)comm.Execute strsql

人家数据库说的很清楚了,这个链接不能操作这个语句,意思可能就是你得换DBA角色才能改系统参数,普通用户是不行的。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2011-6-6 12:30:35 | 只看该作者
多谢楼上回帖,DBA角色是指UID吗? 我把UID换成SA了,应该是最高权限, 后来发现测试机上有个2005的sql查询分析器,用SA登录试了下语句可以执行。但是回到qtp改了UID还是报这个错。。。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2011-6-6 12:45:20 | 只看该作者
角色跟权限关系不大,数据库用户一般都有DBA和普通用户的吧,我理解,你可以去百度一下
不过所要改的内容貌似是数据字典的表,都是通过command命令去修改的,你不要纠结于QTP了,你去请教开发或者DBA吧,我只懂oracle,不懂sql server
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2011-6-7 13:23:17 | 只看该作者
学习学习
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    7#
    发表于 2011-6-8 11:26:48 | 只看该作者
    本帖最后由 17800455 于 2011-6-9 14:31 编辑

    1. sqlStr="update sysparam set value='false' where parameter='EnableLocalVersion'"
    2. connStr = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Data Source=10.158.11.33
    3. "
    4. ExecSql connStr,sqlStr

    5. Public Function ExecSql(connStr,sqlStr)
    6.         
    7.         Set conn = createobject("ADODB.Connection")
    8.         
    9.         Set comm = createobject("ADODB.command")
    10.         
    11.         conn.Open connStr
    12.         
    13.         Set cmd.ActiveConnection = conn

    14.         comm.CommandText=strsql


    15.         If conn.State <> -1 Then
    16.         
    17.                 comm.Execute
    18.         
    19.                 conn.Close
    20.         
    21.         End If
    22.         
    23.         Set comm = Nothing
    24.         
    25.         Set conn = Nothing

    26. End Function
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2011-6-8 15:56:05 | 只看该作者
    楼上的代码拷贝过去改几个参数貌似还是这个错误提示,而且你的脚本貌似同我差不多意思。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2011-6-8 16:13:16 | 只看该作者
    你们见过dba_tables、dba_users这些表能让你们改么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2011-6-8 17:58:49 | 只看该作者
    问题已解决,开发看了下我的脚本说conn和comm缺乏关联,查了下就一句话可以搞定,嘿嘿。

    strsql="update sysparam set value='true' where parameter='EnableLocalVersion'"
    Set conn = createobject("ADODB.connection")
    Set comm = createobject("ADODB.command")
    conn.Open("DSN=test;WSID=192.168.88.202;UID=sa; PWD=sa;Database=test")

    comm.ActiveConnection=conn

    comm.CommandText=strsql
    comm.Execute
    conn.Close
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    11#
    发表于 2011-6-9 14:29:46 | 只看该作者
    确实是啊. 疏忽了...............
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2011-6-17 15:40:27 | 只看该作者
    简单不代表容易。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-25 23:39 , Processed in 0.089214 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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