PB的FIND函数的使用中的一个常犯错误
来源:互联网 发布:淘宝离职证明哪家靠谱? 编辑:程序博客网 时间:2024/05/22 05:21
一般情况下,我们要逐条查找数据窗口中满足某一条件的记录进行处理的时候,我们的代码经常会是下面这种:
ll_findrow=dw.find(findclause,1,dw.rowcount())
do while ll_find>0
<....>
ll_findrow=dw.find(findclause,ll_findrow+1,dw.rowcount())
loop
这种写法最大的陷阱在于,PB的FIND函数在查找的时候,当参数中起始行大于终止行的时候,会从下往上进行查找,而对参数中的起始行和终止行是否有效行不作限制
因此,一旦数据窗口中最后一条记录满足条件时,当处理完最后一条记录后,再去执行FIND的时候,由于ll_findrow+1已经大于dw_rowcount(),PB将会从ll_findrow+1行到dw.rowcount()行开始反向查找满足条件的记录,此时函数仍将返回数据窗口的最后一行,结果就导致程序进行死循环。
所以,为避免出现死循环,一般应在循环的FIND语句前判断ll_findrow是否已超出数据窗口的记录条数,超出则跳出循环。
不过,还有一种更简单的避免死循环的代码写法如下:
ll_findrow=dw.find(findclause,1,dw.rowcount())
do while ll_find>0
<....>
ll_findrow=dw.find(findclause,ll_findrow+1,dw.rowcount() +1 )
loop
- PB的FIND函数的使用中的一个常犯错误
- 我的 常犯错误
- pb的find函数
- 关于数据库中聚合函数和Group by的一个常犯错误
- 高桥和低桥(sort的常犯错误)(stl中的二分函数)
- iPhone初学的常犯错误
- 使用Core Data时需要避免的三个常犯错误
- 性能测试新手常犯错误总结(五):如何提出一个好的性能问题
- 类中的常成员函数的使用和定义
- 缺乏经验的管理者有哪些常犯错误?
- matlab 编程——一些细节、常犯错误的汇总
- C++基础——一些细节、常犯错误的汇总
- 编程常犯错误避免所要遵循的原则
- 常成员函数的使用
- 类模板语法知识体系梳理(包含大量常犯错误demo,尤其滥用友元函数的错误)
- 常犯错误
- 有关C++中的常对象,常成员函数,常数据成员,常引用的认识
- pb中常常碰到的问题
- 测试驱动开发
- Java Management Extensions (JMX)
- jQuery如何选中select box中的某一项
- DSP 优化心得收藏
- free命令详解
- PB的FIND函数的使用中的一个常犯错误
- Linux编程之序列化存储Python对象
- java学习顺序(学习路线图)
- PPT的配色
- 汇编总结(一)
- 单链表赋值,定位,添加,(C++ ) 简单实现 未整理
- 如何用jQuery取得table中某一个tr的index值
- c++ 快速排序(源码)
- 网络流(c++源码)