标签: openedge

从 Progress4gl 的文本文件中读取输入字符串

我有一个包含一些文本的 .txt 文件。我想读取这个文件并将其存储到一个字符串中。有可用的功能吗?或者怎么做呢?请帮忙

progress-4gl openedge

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

如何在 Progress OpenEdge 中执行 .exe 文件

在我提出任何问题之前,让我告诉您我对 Progress Openedge 没有任何经验,但是我的公司运行在其中制作的应用程序,现在我必须通过它进行一些 SOAP 调用。所以我想,为什么不调用用我认为合适的任何语言制作的外部脚本?

但是当我用谷歌搜索它时,我什至找不到如何通过 OpenEdge 运行外部脚本。任何地方都没有示例,文档很长且令人困惑(至少对我而言)。这让我想到了这个简单的问题:

如何在 Progress OpenEdge 中调用外部脚本?

progress-4gl openedge

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

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

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

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

谢谢。

progress-4gl openedge

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

散列临时表行

背景故事

我负责 Android 客户端的后端工作。有很多数据要显示,还需要一些离线功能,所以必须解决同步问题。所述数据由临时表组成。

我们的解决方案

现在,为了让客户端了解可能的更改,而不是强制执行完整的客户端数据库擦除和创建(需要大量时间),我对每个临时表行进行了哈希处理。所述哈希值是通过获取临时表行、为其创建 JSON,然后从该 JSON 生成哈希值来创建的。这是工作。

我对这个解决方案的问题

我认为这不是理想的解决方案。所有这些操作看起来要求很高,从我的测试来看,它表明:

  • 对于每个数据都有一些数据;基线,无操作 = 90 毫秒
  • 在其中填充一个临时表,其中每个缓冲区复制 = 400 ms
  • 在 foreach = 2 880 ms 内的总体之后,使用上述解决方案计算哈希

我想要的是

我很感兴趣我们是否做错了什么。对于这个问题有更好的解决方案吗?是否有要求较低的方法来从每个单独的临时表记录中创建哈希?

我们目前使用的是OpenEdge 10.2B

程序负责hash创建,create_hash 创建widget-pool。

define input parameter inp_hBuffer as handle no-undo.
define output parameter out_cHash as c no-undo.

define var ttDynamic as handle no-undo.
define var hBufferTT as handle no-undo.

define var lResult as l no-undo.
define var cDataTT as longchar no-undo.

define var itime as i. …
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

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

OpenEdge 中的动态查询

再会:

简单问题:我可以在 OpenEdge 中执行动态查询吗?

例子:

def temp-table tt-num1
field f1 as int
field f2 as int.

def temp-table tt-num2
field f1 as int
field f2 as int.

def temp-table tt-num3
field f1 as int
field f2 as int.
Run Code Online (Sandbox Code Playgroud)

我需要的是看起来像这样的东西:

procedure repeat-query:
for each 'variable that contains table-name' no-lock.

disp f1 f2.

end.
end procedure.
Run Code Online (Sandbox Code Playgroud)

或者其他可以解决我的问题的方法。

我该如何继续?我尝试在互联网上检查动态查询,但没有成功。提前致谢。

progress-4gl openedge dynamicquery

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

从另一个文件调用过程

我正在尝试调用另一个文件的过程。到目前为止我得到的结果是一个错误:

测试文件

DEFINE VARIABLE tmp AS CHARACTER.
      RUN sumWords.p(INPUT "Hello", INPUT "World", OUTPUT tmp).
DISPLAY tmp.
Run Code Online (Sandbox Code Playgroud)

sumWords.p

 PROCEDURE sumWords:
        DEFINE INPUT PARAMETER i_firstWord AS CHARACTER.
        DEFINE INPUT PARAMETER i_secondWord AS CHARACTER.
        DEFINE OUTPUT PARAMETER o_returnWord AS INTEGER. 

        o_returnWord = i_firstWord + i_secondWord.
    END PROCEDURE.
Run Code Online (Sandbox Code Playgroud)

test.p 将参数传递给 sumWords.p,它没有期望任何。(1005)

progress-4gl openedge

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

为 OpenEdge-SQL 选择列名

我正在使用 DBeaver 连接到支持 SQL 函数的 Open-Edge 11 数据库。这里使用的功能不起作用。这是一个示例和结果:

功能:

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'TxMSAGrading'
Run Code Online (Sandbox Code Playgroud)

错误:

SQL Error [42S02]: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Table/view/synonynm "INFORMATION_SCHEMA.COLUMNS" cannot be found. (15814)
Run Code Online (Sandbox Code Playgroud)

如何获取列名?

sql progress-db openedge

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

PROGRESS 4GL - 何时使用 FOR FIRST、CAN-FIND 和 FIND FIRST?

我是 4GL 的新手。我总是愿意编写正确的代码,并愿意了解我们正在使用的每个关键字的两端,但遵循给出相同结果的示例查询。我不知道什么时候使用FIND FIRST、FOR FIRST和CAN-FIND?请帮助我重写完美的答案

FOR EACH Customer NO-LOCK:
    FOR FIRST Order OF Customer:
    /*somelogic*/
    END.
END.

FOR EACH Customer NO-LOCK:
    FIND FIRST Order OF Customer NO-LOCK NO-ERROR.
    IF AVAILABLE Order THEN
    /*somelogic*/
END.

FOR EACH Customer NO-LOCK:
  IF CAN-FIND(FIRST  Order OF Customer ) THEN
  DO:
        /*somelogic*/
  END.
END.
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

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

如果我们不删除对象句柄会发生什么?它如何影响?我们怎么看?- 进步4GL

我正在使用下面的查询,它有句柄,但即使我删除/不删除句柄的对象,我也看不到任何反应。但每个人都说最后总是删除对象。为什么我们需要删除它们?如果我们不删除它们会发生什么?我们怎么看?

finally:
  if valid-handle(hQueryTest)   then delete object hQueryTest no-error.
  if valid-handle(hQuerytestvalue) then delete object hQuerytestvalue no-error.
end finally.
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

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

使用具有多个可能的分隔符的 num-entries()

我有一个从 csv 文件中读取的电子邮件地址列表,这些地址有时用逗号分隔,有时当该人拥有超过 1 个电子邮件地址时用分号分隔。

例子:

Pin email_address
11  heidi@gmail.com,hh@yahoo.com
12  tom@osu.edu;TQ@gmail.com
13  lisa@yahoo.com
14  linda@me.com;llewis@gmail.com,lvlv@yahoo.com 
Run Code Online (Sandbox Code Playgroud)

假设我正在将这些读入一个变量,并使用另一个变量对每个人进行计数:

DEFINE VARIABLE emailString AS CHARACTER NO-UNDO.
DEFINE VARIABLE iEmailCount AS INTEGER.
Run Code Online (Sandbox Code Playgroud)

我想计算该人的电子邮件数量。我知道我可以使用此语法分别计算分号之间和逗号之间的条目。

iEmailCount = NUM-ENTRIES (emailString, ";").
iEmailCount = NUM-ENTRIES (emailString).
Run Code Online (Sandbox Code Playgroud)

但我该怎么说呢...

iEmailCount = Num_ENTRIES(emailString,";" OR ",").
Run Code Online (Sandbox Code Playgroud)

progress-4gl openedge

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

标签 统计

openedge ×10

progress-4gl ×9

dynamicquery ×1

progress-db ×1

sql ×1