【发布时间】:2019-01-22 03:04:28
【问题描述】:
我有一个进步的 4gl 休息网络服务。 Create 方法接受我从中提取其基础临时表的数据集
METHOD PUBLIC VOID Createprices(INPUT-OUTPUT DATASET dsprices):
DEFINE VARIABLE hT AS HANDLE.
ht = DATASET dsprices:GET-BUFFER-HANDLE(TEMP-TABLE ttprices:NAME).
ht = ht:DEFAULT-BUFFER-HANDLE.
PreTransactionValidate(INPUT-OUTPUT TABLE-HANDLE ht).
然后我将临时表缓冲区传递给另一个方法(pretransactionvalidate),在该方法中我计算几个字段的值。 分配了虚拟值的 PretransactionValidate 方法 -
METHOD PUBLIC VOID PreTransactionValidate( INPUT-OUTPUT table-handle ttprices):
FOR EACH ttprices:
ASSIGN
ttprices.PricesId = NEXT-VALUE(SeqPricesId)
ttprices.AddedDate = TODAY
ttprices.AddedTime = TIME.
END.
调用 PretransactionValidate 方法会导致我的 Create 方法失败。如果我注释掉呼叫,我可以成功创建记录。我是 Progress 新手,在网上找不到太多资料,所以任何帮助都值得一试。
干杯
【问题讨论】:
-
请提供有关您收到的错误的最详细信息...
-
嗨,迈克,我已经设法解决了错误,但是在 pretransactionvalidate 中分配的值在我调用时没有被保存:
SUPER:CreateData(INPUT-OUTPUT DATASET-HANDLE hDataSet)。在 Createprices 中。但是,如果我执行以下操作:CREATE ttNewPrices. FOR EACH ttprices EXCLUSIVE-LOCK: BUFFER-COPY ttprices TO ttNewPrice. END. BUFFER-COPY ttNewPrice TO prices.正在保存更新的值。 -
Bot 确定,额外的临时表 ttNewPrice 来自哪里。下次,我建议您发布更多相关代码:-)
标签: openedge progress-4gl