51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2314|回复: 5
打印 上一主题 下一主题

[原创] QTP的一个很奇怪的问题??

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-2-21 18:11:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
把附件里的Excel文件放到C盘下,然后把下面这段代码复制QTP中,在Global表中的A列里随便打些字然后删掉就能运行了。
这是一个普通的Excel文件,第10行有一个数字,其余都是字母。
这段代码是将刚才那个Excel中的a列里的所有内容输入到DataTable里去,但是你会发现,除了第10行的数字以外,其余都能输进去……不知道为什么,就是第10行的数字输不进去??

根据我试验下来,在第10行以前的纯数字可以被输入,但第10行以后却不行??
而且第10行以前如果有数字的话,就可以被输入,但之前没有数字就不行了??

为什么???


  1. Set conn = createobject("ADODB.Connection")
  2. conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=false;Data Source=C:\123.xls;Extended Properties='Excel 8.0;hdr=yes'"
  3. Set input = createobject("ADODB.Recordset")
  4. input.open "select * from [Sheet1$]",conn,2,2
  5. p1 = 1
  6. DataTable.GetSheet("Global").SetCurrentRow(1)
  7. Do While not input.eof
  8.         DataTable("A", dtGlobalSheet) = "'" & input("a")
  9.         p1 = p1 + 1
  10.         DataTable.GetSheet("Global").SetCurrentRow(p1)
  11.         input.MoveNext
  12. Loop
  13. input.close
  14. Set input=nothing
  15. Set conn=nothing
复制代码

[ 本帖最后由 Horus_Ra 于 2006-2-22 13:45 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-2-22 00:33:49 | 只看该作者
DataTable.Import ("C:\123.xls")
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-2-22 09:15:34 | 只看该作者
导入吗??
但我的DataTable中还有其他内容呢,导入后就没了……

顺便问一下,
input.close
Set input=nothing
Set conn=nothing
这三句话是干吗的?好像不加也没什么关系?

[ 本帖最后由 Horus_Ra 于 2006-2-22 09:56 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-2-22 11:18:24 | 只看该作者

我也出现过类似的情况

我用的数据库接口是ODBC,也出现过导入了,但没有任何内容,最后发现还是语句有问题。下面是我同事写的代码,可以独立运行(只要你建立相应的表就行了,数据库SQL Server,文件格式.asp,):
<script language="VBScript">
Server_name=inputbox("请输入数据库服务器地址:")' 访问的数据库
user_name=inputbox("请输入用户名:")                                                          '向这个帐号添加节目
n=inputbox("请输入添加节目个数:")                                                                                   '添加多少个节目
'---------------------------------------------------------------------------------------------------------
call add_program_and_add_fav(Server_name,user_name,n)
Sub add_program_and_add_fav(Server_name,user_name,n)
   Set con=Createobject("adodb.connection")
   con.open("Description=MOD;"&_
                         "Driver={SQL Server};"&_
                                                 "Server="&Server_name&";"&_
                                                 "uid=sa;"&_
                                                 "pwd=11111;"&_
                                                 "App=Quicktestpro;"&_
                                                 "WSID=IBM;"&_
                                                 "Database=MOD31")
   Set record1=Createobject("adodb.recordset")
   Set record2=Createobject("adodb.recordset")
   Set record3=Createobject("adodb.recordset")
   For i=1 to n
   sql1="insert into m3_program(p_name,p_adduser,p_commend,p_imageid,p_class,p_check,p_groupmask,"&_
             "p_addtime,p_readcount,p_iskind,p_remarkcount,p_remarkscore,p_duration,p_size_high,p_mediakind,p_size_low,p_size,p_course_id)"&_
           "values('"&user_name&""&i&"','"&user_name&"',0,11,1,2,-1,"&_
                   "'"&now&"',0,1,0,0,0,0,0,0,0,0)"
  sql11="select * from m3_program where p_name='"&user_name&""&i&"'"
  sql2="select * from m3_catalog where c_name='"&user_name&"'"
  sql_fav1="select * from m3_user where u_mask='"&user_name&"'"
   con.execute(sql1)
   record1.open sql11,con
   record2.open sql2,con
   record3.open sql_fav1,con
   sql3="insert into m3_cataloglist(cl_program_id,cl_catalog_id,cl_main_catalog_id) values('"&record1("p_id")&"','"&record2("c_id")&"',10)"
   sql_fav2="insert into m3_programmark(pm_user_id,pm_program_id,pm_addtime)values('"&record3("u_id")&"','"&record1("p_id")&"','"&now&"')"
   con.execute(sql3)   
   con.execute(sql_fav2)
    record1.close
    record2.close
        record3.close
         Next
   Set record1=nothing
   Set record2=nothing
   Set record3=nothing
   con.close
   Set con=nothing
   msgbox("添加成功")
End Sub
</script>


楼主问的close和nothing:是结束并清空存在recordset中的信息。具体的你可以看一下ASP的书籍,里面有很详细的解释。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-2-22 11:50:45 | 只看该作者

nothing

说错了:第一个set input =nothing 是清空recordset中的信息;
             最后一个set conn=nothing 是对象断开与数据库链接;
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-2-22 13:37:00 | 只看该作者
请问……你说是语句有问题,不知道具体是什么语句有什么问题?
我的代码就这么几行,怎么看都看不出问题啊?
而且,如果是第10行以上的话,可以被输入,如果是字母的话,也可以被输入,但偏偏就是第10行一下的纯数字不能被输入,那是为什么??

另外问一下,如果最后不set nothing的话,会有什么后果?

[ 本帖最后由 Horus_Ra 于 2006-2-22 13:46 编辑 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-26 21:03 , Processed in 0.089877 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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