当前位置:软件学习 > 其它软件 >>

求救,关于DB.SEARCH里面的公式

近日写一代理,里面需要用DB.SEARCH,
写法如下:
searchFormula$  ={zz="}+ tName +{" & Form="frm_originality" & HasResult!="1"   & del!="1" &  @Created>=@TextToTime("}+ Cstr(doc.startdate(0))  +{") & @Created <=@TextToTime("}+  Cstr(doc.enddate(0)) +{") }

前面这几项都没问题
zz="}+ tName +{" & Form="frm_originality" & HasResult!="1"   & del!="1"

doc.startdate(0)和doc.enddate(0)是两个时间,需要找出的文档就是创建时间在这两个时间之间的文档

现在问题来了,如果只用zz="}+ tName +{" & Form="frm_originality" & HasResult!="1"   & del!="1"这一段公式,那么还好,代理很快可以运行完,大概值需要1秒钟

如果加上@Created>=@TextToTime("}+ Cstr(doc.startdate(0))  +{") & @Created <=@TextToTime("}+  Cstr(doc.enddate(0)) +{") }
这一段时间比较,代理运行需要10秒钟,是因为我这样写效率太低的原因嘛?
有没有朋友遇到过,大家帮着分析一下吧。 --------------------编程问答-------------------- @Created>=[}+ doc.startdate(0) +{] & @Created <=[}+ doc.enddate(0) +{]}

把你说的那段改成这个试试(括弧你再检查下,我自己有点晕),就是data类型在公示里可以用[]裹起来,等同于字符串的"" --------------------编程问答-------------------- 说错了,是日期类型在公式里可以用[]裹起来 --------------------编程问答-------------------- 不需要那么麻烦吧。试试这个:

searchFormula$={zz="}+ tName +{" & Form="frm_originality" & HasResult!="1" & del!="1" &  @Created - startdate>=0 & @Created - enddate <=0 }


前提是startdate和enddate都是Date/Time类型的。 --------------------编程问答-------------------- 这种情况我也遇到过,加上时间这个条件会让当前数据库重建索引,你直接在视图上添加那些条件你刷新显示数据都会那样。不过也没找到什么好办法解除那个问题
补充:企业软件 ,  Lotus
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,