51Testing软件测试论坛

标题: ddt_update_from_db函数调用问题 [打印本页]

作者: zjuan2002    时间: 2006-8-28 17:55
标题: ddt_update_from_db函数调用问题
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这个文件,看到内容并没有任何改变,请高手帮忙看看是怎么回事。谢谢了!
作者: zjuan2002    时间: 2006-8-29 15:10
怎么没人回啊,没人知道怎么回事吗?
作者: 快乐逍遥    时间: 2006-8-30 01:16
sql_query = testname & "C:\\Program Files\\Mercury Interactive\\WinRunner\\dat\\his\\test3\\chklist\\\msqr3.sql";

应该是这里错了吧 testname & "C:\.................“ 路径不对造成的
作者: zjuan2002    时间: 2006-8-30 19:04
我加了个数据库检查点,运行成功,用ddt_update_from_db这个函数之前必须要有数据库检查点吗?
作者: piao_604    时间: 2006-8-31 15:36
楼上的,数据已经成功写入exce文件了吗,我试了试,运行成功,但是数据没有写入,正在学习中,请指教!谢谢!
作者: piao_604    时间: 2006-8-31 16:41
呵呵,还是我,问题已经解决, 我在运行过程中,先加数据库检查点,运行成功后,又把数据库检查点去掉,重新运行后,也成功了,可见应该跟数据库检查点没有关系才对,我觉得是 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);
作者: 快乐逍遥    时间: 2006-8-31 22:05
别人的代码不能一股脑儿照搬呀
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 编辑 ]
作者: zjuan2002    时间: 2006-9-3 17:27
代码改以下

目的是想从数据库中取一定条件下的数据到数据表(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 编辑 ]
作者: yj151221    时间: 2009-8-6 19:03
标题: 上面的sql文件的语句一定要那么写吗
在sql文件中有什么要求啊,只写sql语句行吗,前提是我已经连接了数据库了
作者: liujinkui    时间: 2009-8-6 20:18
可以。
作者: liujinkui    时间: 2009-8-6 20:23
直接执行SQL
db_execute_query();  (语法查下帮助)




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2