gpt4 book ai didi

progress-4gl - 如何从 Progress Openedge 中的缓冲区字段检索日期值?

转载 作者:行者123 更新时间:2023-12-04 04:10:17 26 4
gpt4 key购买 nike

我有一个缓冲区,其中混合了数据、数字和字符字段。我正在显示字段的值,但由于某种原因,日期字段返回“?”当我尝试将它们添加到字符串时。

我还明白吗?即使我这样做

ASSIGN lvString = lvString + STRING( hField:BUFFER-VALUE ).

我也尝试过将 BUFFER-VALUE 分配给本地 DATE 变量,并将其转换为字符串,但这也不起作用 - 还是?

但是,如果我使用 STRING-VALUE 属性,它就可以正常工作。

如何获取日期字段的值,而不仅仅是字符串?

最佳答案

您可以使用两种方式来满足您的需求。一种是直接使用表缓冲区,另一种是使用QUERY 句柄。

第一个示例直接从表(或 TEMP-TABLE,无关紧要)使用缓冲区:

DEF VAR dateVar     AS DATE NO-UNDO.

FIND FIRST job NO-LOCK.

dateVar = DATE(BUFFER job:BUFFER-FIELD('dt-job'):BUFFER-VALUE).

MESSAGE dateVar
VIEW-AS ALERT-BOX INFO BUTTONS OK.

第二个使用查询句柄的例子:

DEF VAR dateVar     AS DATE NO-UNDO.

DEF QUERY qrJob FOR job.

OPEN QUERY qrJob FOR EACH job.

QUERY qrJob:GET-FIRST().

dateVar = DATE(QUERY qrJob:GET-BUFFER-HANDLE(1):BUFFER-FIELD('dt-job'):BUFFER-VALUE).

MESSAGE dateVar
VIEW-AS ALERT-BOX INFO BUTTONS OK.

正如 Tim Kuehn 所说,如果您知道它在查询中的位置,则可以用查询中的 # of 字段替换 'dt-job'。我可以使用 BUFFER-FIELD(2) 代替 BUFFER-FIELD('dt-job') 因为 dt-job 是 # 2 我的查询中的字段。请记住,在 FOR EACHOPEN QUERY 语句中使用 FIELDS 子句会更改查询中字段的顺序。通常,对于浏览器来说,只有 FIELDS 部分中指定的列字段按顺序可用。

这些可能对您有用。重要的是要说明 BUFFER-VALUE 总是返回 CHARACTER 数据类型,因此您需要使用 DATE 语句进行数据转换。

希望对您有所帮助。

关于progress-4gl - 如何从 Progress Openedge 中的缓冲区字段检索日期值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27480903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com