在 Informix SPL 例程中执行与传统 sleep() 系统调用语义等效的最佳方法是什么?换句话说,只需“暂停” N 秒(或毫秒或其他什么,但几秒就可以了)。我正在寻找一种解决方案,它不涉及将一些新的(可能由我编写的)C 代码或其他库链接到 Informix 服务器。这必须是我可以完全从 SPL 做的事情。 IDS 10 或 11 的解决方案就可以了。
@RET - “明显”的答案对我来说并不明显!我不知道 SYSTEM 命令。谢谢! (是的,我就是你认为的那个人。)
是的,它仅用于调试目的。不幸的是,SPL 中的 CURRENT 将始终返回相同的值,设置在调用的入口处:
将 CURRENT 包装在它自己的子程序中没有帮助。在第一次调用包装器时,您确实会得到不同的答案(前提是您使用的是 YEAR TO FRACTION(5) 或其他具有足够高分辨率的其他类型以显示差异),但随后您会在每一个上得到相同的值后续调用,确保任何类型的循环永远不会终止。
最佳答案
你不想要明显的答案肯定有一些很好的理由:SYSTEM "sleep 5"
。如果您只想让 SPL 在检查各种值等时暂停,这里有一些想法(当然,所有这些都是彻头彻尾的黑客攻击):
希望这是一些帮助(如果你是 Ars 和 Rose::DB 的同一个 JS,这是我至少能做的 ;-)