| wildfish 回复于:2004-05-21 17:22:31 |
| 你用代码的形式贴出来,我一看到这种代码就头晕 |
| yoyoage 回复于:2004-05-22 10:53:46 |
| 干吗不DEBUG看看? |
| kevingao 回复于:2004-05-22 22:20:31 |
| DEBUG我试过了,但是找不出什么错啊 |
| 红像 回复于:2004-05-24 09:57:47 |
| 这段代码意思表达有问题。
问题1 KEY03先SETGT一下,将游标钉在一个地方(问题就在这里),然后EXFMT画面定住,这个时候改变一些域(改变得域包括KEY03里面的值吗,如果是,那么之前的SETGT就可能是将游标钉错地方了。可能会造成查询次数不足,或者多查。) 问题2 READP是一条一条读,当然会多次循环。 我个人的写法会是这样: KEY03 CHAIN 50 readp (预读一条记录,作为屏幕域的输入参数) EXFMT LOVAL SETLL (重置游标到数据库开头) CHAIN 50 *IN50 DOWEQ *OFF 处理找到的记录 READE 50 ENDDO set lr 大概这样就OK |
| 天海 回复于:2004-05-31 18:59:40 |
| 这样的代码我也看不懂 |
| 红像 回复于:2004-06-01 12:20:36 |
| 偶写的伪代码,用来说明流程的,for people, not for compiler |
| aeiou 回复于:2004-06-01 13:05:27 |
| 你自己也说是要读到文件头才会跳出来。没有读到文件头之前会一直循环,这是正常的啊。 |
| james68 回复于:2004-06-01 16:56:07 |
| 应该用机构化的方法来写.
最基本的少用GOTO 语句 如果这样就好看好查多了 |
| james68 回复于:2004-06-01 17:12:32 |
| 最明显的 你看
IF ... GOTO LOOP01 ELSE GOTO LOOP01 ENDIF |