往表中相应栏位的参数插入值时遇到的问题
需要把源表中相应栏位的值取出来插入到目标表的相应栏位下,我在运行如下脚本时,系统没有插入值且没有任何提示信息,现在把脚本贴出来,麻烦大家一起看下:详细说明此脚本欲完成功能:
源表:s0205new.xls
目标表:s0205valid.xls
说明:需要将源表中参数为 s0205new_id 的值依次将读出来,并依次插入到目标表中参数为s0205query_id 下
插入方式:源表中第i行值插入到目标表第i行
测试情况说明:
1、目标表的值没有改变
2、pause("the current s02001's value is "&s020011),此提示信息能提示
3、用红色标识的地方没有任何提示
备注说明:
1、目标表、源表均在同一目录下,且所涉及到的栏位s0205new_id、s0205query_id均已参数化
2、在测试时将ddt_set_val_by_row(dtable,table_Row,"s0205query_id",s020011) 中的table_Row、s020011均用常量代替测试过,但仍没有插入成功。
dtable="s0205valid.xls"; #以可写方式打开目标表
rc = ddt_open(dtable, DDT_MODE_READWRITE);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table."&dtable);
table = "s0205new.xls"; #以只读方式打开源表
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
pause("Cannot open table."&table);
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{
ddt_set_row(table,table_Row);
s020011=ddt_val(table,"s0205new_id");#定义s020011获取源表当前参数s0205new_id的值
pause("the current s02001's value is "&s020011);#显示当前参数的值,测试用
rc1=ddt_set_val_by_row(dtable,table_Row,"s0205query_id",s020011);#将获取的值插入到目标表
if(rc1!=E_OK && rc1!=E_FILE_OPEN )
pause("cannot insert thevalue to"&dtable);
ddt_save(dtable);#保存目标表
}
ddt_close(table);#关闭源表
ddt_close(dtable);#关闭目标表 我试了试你的代码,没有问题,可以插入成功,就是插入的列不对,还在琢磨, 你可以在你的代码中,将获取的值插入到目标表中的下面加上pause("rc1 ===== "&rc1),用来调试,根据rc的值看是否成功. 折腾了半天,终于明白了,如果ddt_set_val_by_row(table,table_Row,"id",s020011)函数里的第三个参数id在目标表中是在第一列,则插入的信息就显示在第一列,如果目标表中是个空表,则就默认去L列了 这个是能插入的,因为能够通过pause来显示插入的值,但是还是下面两个问题还有疑问:
1、若用ddt_set_val_by_row()在第3行插入,用ddt_val_by_row()来获取插入的值,若获取的是第3行的值,则测试结果中则显示为空,没有显示插入的值,若获取的是第1行的值,才能获取所插入的值,不知道piao_604有没有发现此问题。
rc1=ddt_set_val_by_row(dtable,3,"id","1111");
if(rc1=E_OK && rc1=E_FILE_OPEN )
pause("ok"&dtable);
ddt_save(dtable);
s020012=ddt_val_by_row(dtable,3,"id");
pause("the value is "&s020012);
2、通过这个例子能插入值,主要的依据是因为通过pause()能显示插入的值,但是在文件中打开目标表,表中的内容仍没有改变,没有显示被插入的值。我在想是不是需要将表导入才能生效,但是关于ddt_的函数中没有找到能够进行导入的方法,不知道是不是自己思路有误。 找到第1个问题的原因了,用ddt_set_val_by_row()插入时,只能往表中连续的行进行插入,中间不能有空行,否则就会有问题,上页面的例子中没有获取第3行的值,是因为表中第2行是空的,里面只有第1行的值,所以会出现此问题。
页:
[1]