Den*_*iss 5 progress-4gl openedge
例如,我有一个包含字段“sub_id”的表,其未按升序或降序排序。我想对每个从最小的 sub_id 到最大的 sub_id 进行操作,我该怎么做?
您应该使用关键字 BY。如果您排序所依据的字段未建立索引,则速度可能会很慢并且会消耗系统资源。这在大桌子上最为明显。
/* Smallest to largest */
FOR EACH tablename NO-LOCK BY tablename.sub_id:
/* Do something */
END.
/* Largest to smallest sub_id */
FOR EACH tablename NO-LOCK BY tablename.sub_id DESCENDING:
/* Do something */
END.
/* With a WHERE clause */
FOR EACH tablename NO-LOCK WHERE tablename.field = "something" BY tablename.sub_id:
/* Do something */
END.
Run Code Online (Sandbox Code Playgroud)
如果你想改变数据(更新、分配等),上面的 NO-LOCK 将不起作用。NO-LOCK 用于只读操作(如显示数据)。独占锁用于更新/删除等。