To return expected results, you can:

  • Reduce the number of search terms. Each term you use focuses the search further.
  • Check your spelling. A single misspelled or incorrectly typed term can change your result.
  • Try substituting synonyms for your original terms. For example, instead of searching for "java classes", try "java training"
  • Did you search for an IBM acquired or sold product ? If so, follow the appropriate link below to find the content you need.
  • 曾经有细心的客户反映过,通过 RPGLE中的内嵌函数%TIMESTAMP,无法获得微秒级的数据。的确,这是目前

    RPGLE 中该内嵌函数的一个 制,只能获得毫秒级的数据,尽管,RPGLE的TIMESTAMP数据类型本身可以支持

    微秒级的精 度。如代码示例一所示。

    图像

    通过该段代码,我们可以得到如结果示例一中的结果,最后三位是 0。

    图像

    那么,既然前面提到过, RPGLE中,时间戳TIMESTAMP数据类型,本身是支持微秒级的,我们如何获取到微秒级的数据呢?方法

    可以有好 种。首先,最简单的,我们可以通过嵌入式 SQL语句来实现,如代码示例二所示:

    图像

    该段代码的运行结果请见结果示例二:

    图像

    其次,如果不考虑 SQL,还可以通过调用系统函数 gettimeofday() 来实现。相关的信息中心的链接为:

    http://pic.dhe.ibm.com/infocenter/iseries/v6r1m0/index.jsp?topic=/apis/gettod.htm

    该链接中提供了一个 C语言实现的例子。用户可以稍作改动, 让该函数返回调用API所获得的时间戳,然后通过 ILE的混合编程来在 RPG

    语言中 用该C语言编写的函数。也可以直接编写RPGLE程序来调 用这个系统API。 最后,用户还可以通过 API QWCRSVAL来取 系统值

    QDATETIME来获取 20位精确到微秒级的时间戳。其结果的格式为:

    YYYYMMDDHHNNSSXXXXXX,

    其中YYYY为年份, MM是月份, DD是日期, HH是小时, NN 是分, SS是秒, XXXXXX是微秒。

    该API可参见: http://publib.boulder.ibm.com/infocenter/iseries/v6r1m0/index.jsp?topic=/apis/qwcrsval.htm

    请注意,尽管可以获取微秒级的时间戳,我们仍然不建议客户用时间戳作为交易的唯一标识。因为在并发交易中,取到完全相同的时

    戳,也还是有可能的,尽管概率很小。 接下来,我们来探讨下时间戳和性能相关的话题。日期 DATE,时间TIME和时间戳 TIMESTAMP

    相关的操作,会有些CPU的消耗,因为在每次用到这些字段时,都会发生触发关于日期,时间的合法性检查。如果程序中不停有这些数

    类型的字段的操作,那么,还是可以考虑想办法避免因为这些操作而带来的CPU开销的。在6.1和7.1中,都提供了一个新的控制表(H表)

    键字VALIDATE(*NODATETIME),请参考代码示例三。

    图像

    代码示例三

    该新功能需要安装相应的 PTF,6.1为 SI43988,7.1为SI43157。指定该关键字后,可以让RPGLE编译器将这些日期,时间,时间戳 类型

    字段视为文字数值数据,从而避免相应的合法性检查。这个关键字需要小心使用,因为一旦使用,将引入出现非法数据的风险, 并且

    数据有可能随着程序逻辑的处理,传染给其他字段或变量。所以,对于该关键字,我们推荐以下适用场景:

    1、仅用于从未发生过日期,时间或时间戳数据非法错误的那些程序模块。

    2、当某一数值首次赋值给这种类型字段之前,使用是否存在而强行进行合法性检查。

    当发生大量的涉及这类数据类型的 I/O,该关键字能明显提高应用程序的性能表现。

    作者:

    钟嘉田: zhongjt@cn.ibm.com

    了解更多关于IBM i 的信息,请关注IBM i 新浪官方微博 @IBMiChina