小编Tom*_*com的帖子

正在使用Break by keyword 4GL

正在进行的关键工作4GL的确切用途是什么?我没有从开放边缘的关键字帮助中获得清晰的想法.by和break by关键字之间的主要区别是什么?

progress-4gl openedge

2
推荐指数
1
解决办法
1万
查看次数

从临时表创建数据库表(通过代码)

我有一个名为 tt 的临时表。我想使用我的临时表创建一个具有相同字段名称和类型的数据库表。

我不知道在Progress-4gl 中该怎么做。这可能吗 ?

谢谢。

progress-4gl openedge

2
推荐指数
1
解决办法
2092
查看次数

进度4gl - .ped文件

每当我尝试"THIS-PROCEDURE:FILE-NAME"来显示我正在使用的当前.p文件时,我总是得到的结果是.ped文件.我想知道.ped文件是什么以及显示文件名的方法,即程序中.p文件的名称.

progress-4gl openedge

1
推荐指数
1
解决办法
1151
查看次数

进步4GL基础学习

您认为,Progress 4GL的基础知识会涉及哪些主题?请告诉我.

progress-4gl openedge

1
推荐指数
1
解决办法
1万
查看次数

进度4gl OpenEdge abl从目录中删除文件

如何使用OpenEdge ABL(progress-4gl)代码从目录中删除文件?

我找不到任何代表这个问题的代码示例.我知道如何输出值(路径),以及从值(路径)输入,但是如何完成删除?

progress-4gl openedge

1
推荐指数
1
解决办法
2110
查看次数

RDBMS索引进度问题-供参考

我发现在Progress 10.1中,当在查询中使用多个索引时,数据库将使用索引列表中的第一个索引,而不是最优化的索引,也不是两个索引的子集。

其他人有没有经历过?

================================================== ===============

定义了几个索引,但我们正在查看的两个索引是:XIE1cac_role_person ownering_entity_mnemonic owning_entity_key role_key

XIE2cac_role_person contract_obj person_role_code Effective_from_date

最初,我的代码如下,它使用的是第一个索引,该索引返回的数据集更大。

FOR EACH cac_role_person NO-LOCK 
        WHERE cac_role_person.contract_obj = cbm_contract.contract_obj 
          AND cac_role_person.owning_entity_mnemonic = "BROKER"
          AND (
              (cac_role_person.effective_to_date > TODAY 
          AND  cac_role_person.effective_to_date >=  
               cbm_contract_component.contract_component_start_date)
           OR (cac_role_person.effective_to_date = ? 
          AND cac_role_person.effective_from_date <=                  
              cbm_contract_component.contract_component_start_date)
              ):
Run Code Online (Sandbox Code Playgroud)

所以我现在强迫它使用第二索引:

FOR EACH cac_role_person NO-LOCK USE-INDEX XIE2cac_role_person
        WHERE cac_role_person.contract_obj = cbm_contract.contract_obj 
          AND cac_role_person.owning_entity_mnemonic = "BROKER"
          AND (
              (cac_role_person.effective_to_date > TODAY 
          AND  cac_role_person.effective_to_date >=  
               cbm_contract_component.contract_component_start_date)
           OR (cac_role_person.effective_to_date = ? 
          AND cac_role_person.effective_from_date <=                  
              cbm_contract_component.contract_component_start_date)
              ):
Run Code Online (Sandbox Code Playgroud)

第一个代码在30小时内修复了约4000次,而改进后的12小时内修复了7万次。(循环是更大的部分的一部分,但这只是我需要加快处理17倍的更改

database progress-4gl progress-db openedge

1
推荐指数
1
解决办法
764
查看次数

如何使用Progress 4gl中的参数从List执行过程?

我有一些这样的清单

DEFINE VARIABLE procedurelist AS CHARACTER EXTENT 5
    INITIAL [ "1.p", "2.p", "3.p", "4.p", "5.p"].
Run Code Online (Sandbox Code Playgroud)

但这个带输入输出参数的所有程序,我想执行这个程序,我该怎么做?我不知道该怎么做.

progress-4gl openedge

1
推荐指数
1
解决办法
1046
查看次数

如果找不到匹配项,则返回默认值

我有一个函数Ge​​tQuantity返回一个小数。在某些情况下,我不返回任何内容,即返回空字符串,以便显示“”。

实际行为:

  1. GetQuantity(1)-> 1.0
  2. GetQuantity(2)-> 2.0
  3. GetQuantity(3)-> 3.3

所需行为:

  1. GetQuantity(1)-> 1.0
  2. GetQuantity(2)-> 2.0
  3. GetQuantity(3)->''

在情况3中,我显然可以返回-1.0或其他值,但这不是我所需要的。

FUNCTION GetQuantity RETURNS DECIMAL(INPUT num  AS INTEGER):
    DEFINE VARIABLE quantity AS DECIMAL NO-UNDO FORMAT "->,>>>,>>9.9<<<<<<<<".

    quantity = 3.3. //initialization is neccessary as IRL my value is initialized

    IF num = 1 THEN DO:
        RETURN 1.0.
    END.

    ELSE IF num = 2 THEN DO:
        RETURN 2.0.
    END.

    RETURN quantity. //base case return ' '
END.

DISPLAY GetQuantity(3)
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

1
推荐指数
1
解决办法
59
查看次数

Progress-4gl:事务范围如何应用于外部程序调用?

我需要一些帮助来理解当前程序之外的程序/程序的事务范围。

假设我有三个程序,程序 A、程序 B 和程序 C。在程序 A 中,我有一个过程,其中有一些行包含在do transaction(非强类型)块中。在那个do transaction块中,它调用另一个程序 B。从程序 B 返回时,有一个撤消,离开命令。在同一个事务块内,它调用程序C并有一个undo,在这个调用之后也离开。

我的问题是,如果在事务块内,程序 B 执行没有错误,但程序 c 返回错误,那么程序 C 调用后的 undo,leave 是否也会撤销程序 B 内部发生的事务?

Procedure do_something:
  some processing....
  do transaction:
    error-message = "".
    {run programB.p}
    if error-message <> "" then undo, leave.
  
    some further processing...
  
    error-message = "".
    {run programC.p}
    if error-message <> "" then undo, leave.
  end. /* end of do transaction */
end procedure.
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

1
推荐指数
1
解决办法
251
查看次数

执行 .p 文件后,未使用 proenv 在 test.out 文件中获取输出

我是进步的新手。我只是按照下面的知识库文章,但我没有得到所需的输出。 https://knowledgebase.progress.com/articles/Knowledge/How-to-write-ap-script-to-execute-via-proenv-to-produce-a-stderr-stdout-in-a-file

  1. 我用下面的代码创建了一个 test.p 文件:
MESSAGE ENTRY (1, "This is a test") VIEW-AS ALERT-BOX.
MESSAGE "Hello there" VIEW-AS ALERT-BOX.
DISPLAY "hello world".
Run Code Online (Sandbox Code Playgroud)
  1. chmod +x 测试.p
  2. 然后在 proenv 中我运行下面的命令
proenv>proenv -b -p test.p > test.out
Run Code Online (Sandbox Code Playgroud)
  1. 我只在 test.out 文件的输出下面找到
$ cat test.out

      DLC: /opt/progress/117
   WRKDIR: /opt/progress/wrk_117
      OEM: /opt/progress/oemgmt_117
OEMWRKDIR: /opt/progress/wrk_oemgmt_117

Inserting /opt/progress/117/bin to beginning of path and
setting the current directory to /opt/progress/wrk_117.

OpenEdge Release 11.7.5 as of Fri Jun  7 08:29:03 EDT 2019
Run Code Online (Sandbox Code Playgroud)

我没有找到,我做错了什么。感谢这方面的帮助。谢谢。

progress-4gl progress-db openedge

1
推荐指数
1
解决办法
77
查看次数

标签 统计

openedge ×10

progress-4gl ×10

progress-db ×2

database ×1