51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4264|回复: 10
打印 上一主题 下一主题

ddt_update_from_db函数调用问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-8-28 17:55:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ddt_update_from_db函数调用问题,
目的是想从数据库中取一定条件下的数据到数据表(456.xls)中
具体代码如下:
table1="C:\\Program Files\\Mercury Interactive\\WinRunner\\dat\\his\\test3\\456.xls";

rc=ddt_open(table1,DDT_MODE_READWRITE);

if (rc!=E_OK)
pause("error");

testname =  getvar("testname") ;
sql_query = testname & "C:\\Program Files\\Mercury Interactive\\WinRunner\\dat\\his\\test3\\chklist\\\msqr3.sql";

ddt_update_from_db(table1,sql_query,out_row_count,NO_LIMIT,30);

ddt_save("table1");

ddt_close_all_tables();

msqr3文件的内容如下:
Description=stationnet;DRIVER=SQL Server;SERVER=(local);UID=LAI;APP=WinRunner;WSID=LAIXIAOJUAN;DATABASE=stationnet;Trusted_Connection=Yes
select g_clinic_master.register_no from g_clinic_master where g_clinic_master.registering_date >='2006-08-28 00:00:00'


运行通过,但我打开456.xls这个文件,看到内容并没有任何改变,请高手帮忙看看是怎么回事。谢谢了!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-8-29 15:10:16 | 只看该作者
怎么没人回啊,没人知道怎么回事吗?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-8-30 01:16:48 | 只看该作者
sql_query = testname & "C:\\Program Files\\Mercury Interactive\\WinRunner\\dat\\his\\test3\\chklist\\\msqr3.sql";

应该是这里错了吧 testname & "C:\.................“ 路径不对造成的
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-8-30 19:04:26 | 只看该作者
我加了个数据库检查点,运行成功,用ddt_update_from_db这个函数之前必须要有数据库检查点吗?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-8-31 15:36:19 | 只看该作者
楼上的,数据已经成功写入exce文件了吗,我试了试,运行成功,但是数据没有写入,正在学习中,请指教!谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-8-31 16:41:36 | 只看该作者
呵呵,还是我,问题已经解决, 我在运行过程中,先加数据库检查点,运行成功后,又把数据库检查点去掉,重新运行后,也成功了,可见应该跟数据库检查点没有关系才对,我觉得是 sql文件的问题,我的sql文件内容如下:
DRIVER={Oracle in OraHome92};SERVER=BJTEL;UID=TELECOM;PWD=TELECOM;DBQ=BJTEL;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;
SELECT T_LOG.SRNUMBER, T_LOG.SUBORDERNUMBER  FROM TELECOM.T_LOG T_LOG   WHERE  T_LOG.SRNUMBER='O06083100038'
SRNUMBER        SUBORDERNUMBER

希望大家共同进步,另外对楼主脚本里的以下两句不是很理解,
testname =  getvar("testname") ;
sql_query = testname & "C:\\Program Files\\Mercury Interactive\\WinRunner\\dat\\his\\test3\\chklist\\\msqr3.sql";

我的脚本里没有用到这个,直接这样写的,也是成功的
ddt_update_from_db(table1,"E:\\lj\\test1.sql",out_row_count,NO_LIMIT,30);
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-8-31 22:05:38 | 只看该作者
别人的代码不能一股脑儿照搬呀
testname =  getvar("testname") ; 是取测试用例的路径,像下面这句这么写,当然是取不到正确的文件来执行了

testname =  getvar("testname") ;
sql_query = testname & "C:\\Program Files\\Mercury Interactive\\WinRunner\\dat\\his\\test3\\chklist\\\msqr3.sql";

[ 本帖最后由 快乐逍遥 于 2006-9-1 01:57 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-9-3 17:27:59 | 只看该作者
代码改以下

目的是想从数据库中取一定条件下的数据到数据表(456.xls)中
具体代码如下:
table1="C:\\Program Files\\Mercury Interactive\\WinRunner\\dat\\his\\test3\\456. xls";

rc=ddt_open(table1,DDT_MODE_READWRITE);

if (rc!=E_OK)
pause("error");
sql_query ="C:\\Program Files\\Mercury Interactive\\WinRunner\\dat\\his\\test3\\chklist\\\msqr3.sql";

ddt_update_from_db(table1,sql_query,out_row_count,NO_LIMIT,30);

ddt_save("table1");

ddt_close_all_tables


运行成功的前提条件是必须建立数据库检查点。有些不明白为什么?

[ 本帖最后由 zjuan2002 于 2006-9-3 17:29 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-8-6 19:03:23 | 只看该作者

上面的sql文件的语句一定要那么写吗

在sql文件中有什么要求啊,只写sql语句行吗,前提是我已经连接了数据库了
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 11:11
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2009-8-6 20:18:28 | 只看该作者
    可以。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 11:11
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2009-8-6 20:23:13 | 只看该作者
    直接执行SQL
    db_execute_query();  (语法查下帮助)
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-17 22:40 , Processed in 0.081889 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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