有谁知道Progress 10.1C在编码功能中使用哪种算法?
我发现了这个:http://knowledgebase.progress.com/articles/Article/21685
的进展4GL ENCODE函数使用CRC-16算法来生成其编码的输出.
Progress 4GL:
ENCODE("Test").
Run Code Online (Sandbox Code Playgroud)
给出输出" LkwidblanjsipkJC "
但是例如在http://www.nitrxgen.net/hashgen/上使用密码" Test ",我从来没有从Progress获得结果.
有任何想法吗?:)
我正在寻找一种以Progress “ .d”文件格式手动转储OpenEdge数据库表中的记录子集的最简单方法。
我能想到的最好方法是创建一个额外的测试数据库,该数据库具有与源数据库相同的架构,然后使用FOR EACH和BUFFER-COPY语句将记录的子集复制到测试数据库中。然后,只需使用“ 转储数据和定义表内容(.d文件)...”菜单选项从测试数据库中导出数据即可。
这对我来说似乎很简单,但我找不到合适的属性.出于错误报告的目的,我想知道我所在的内部程序的名称.
以下是最简单的示例:
运行测试.
程序测试.
/*我怎么能在这里显示程序名称'test'?*/
结束程序.
在单元测试中,我需要验证程序在处理表时是否跳过锁定的记录。我一直无法设置锁定记录,因为测试无法锁定自己,这很有意义。
这是我试图实现的目标的示例。
DEV VAR v_isCommitted AS LOGI NO-UNDO.
DEF VAR hl AS HANDLE NO-UNDO.
DEF BUFFER bufl FOR tablename.
hl = BUFFER bufl:HANDLE.
LOCKED_RECORDS:
DO TRANSACTION ON ERROR UNDO, LEAVE LOCKED_RECORDS:
/*Setup : Create record not committed yet*/
CREATE tablename.
ASSIGN tablename.fields = fieldsvalue.
/*ACT : Code I'm trying to test*/
/*...some code...*/
v_isCommitted = hl:FIND-BY-ROWID(ROWID(tablename), EXCLUSIVE-LOCK, NO-WAIT)
AND AVAILABLE(bufl)
AND NOT LOCKED(bufl).
/*...some code touching the record if it is commited...*/
/*ASSERT : program left new record tablename AS …Run Code Online (Sandbox Code Playgroud) 我正在努力通过FOR EACH. 我的目标是只从表中读取前 2 条记录,并将一个字段值保存到变量中。
假设我有一个MyTable包含字段PartNr, CreationDate, Company,的表ID。
我的FOR EACH声明看起来像这样:
FOR EACH MyTable
WHERE MyTable.Company = "TestCompany"
AND MyTable.CreationDate >= 01.01.2021
NO-LOCK:
END.
Run Code Online (Sandbox Code Playgroud)
例如, FOR EACH 语句会找到 15 条记录。然而,我只需要前两个。我想存储PartNr的的first记录在一个变量,而PartNr该的second另一个变量的记录。
之后,FOR EACH声明应该结束。
我也试过使用FIND FIRST,但我不知道如何获得第二条记录。
我几乎找了python相当于break当使用关键字loops。
任何帮助深表感谢。
我正在使用下面的查询,它有句柄,但即使我删除/不删除句柄的对象,我也看不到任何反应。但每个人都说最后总是删除对象。为什么我们需要删除它们?如果我们不删除它们会发生什么?我们怎么看?
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) 我有一个从 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) 是否可以定义窗口出现在哪个屏幕上?我试图找到解决方案,但始终只获得有关如何将某些内容显示在屏幕上或如何监视数据库的信息。