我是 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) 我正在使用下面的查询,它有句柄,但即使我删除/不删除句柄的对象,我也看不到任何反应。但每个人都说最后总是删除对象。为什么我们需要删除它们?如果我们不删除它们会发生什么?我们怎么看?
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) 我是 4GL 的新手。我总是使用下面的查询将临时表中的数据导出为 .csv 文件。为了给出标题标签,我进行了硬编码。是否可以从临时表字段本身获取标签?如果是,请帮助我修改查询。
DEFINE TEMP-TABLE ttdata NO-UNDO
FIELD cCustomerName LIKE Customer.NAME
FIELD cAddress LIKE Customer.Address
.
OUTPUT TO VALUE(SESSION:TEMP-DIRECTORY + "temp.csv").
PUT UNFORMATTED "customer Name,Customer Address" SKIP.
FOR EACH ttdata NO-LOCK:
EXPORT DELIMITER "," ttdata.
END.
OUTPUT CLOSE.
Run Code Online (Sandbox Code Playgroud) 我在实际耗尽磁盘的地方遇到以下错误。这是因为为 srt 文件生成分配的空间不够。所以我们决定改变空间巨大的路径。是否可以通过程序改变它?
系统错误:写入中出现 I/O 错误 0,ret 2048,文件 56(/mfgtmp/tmp/srtE5yybD),地址 77010944。(290)
我是 4GL 语言的新手。我编写了一个逻辑,试图检查维数组的 <> "" 值并给出语法错误。谁能帮我解决我犯错误的地方以及我写的逻辑是否正确?
DEFINE VARIABLE anotarray AS CHARACTER NO-UNDO.
DEFINE VARIABLE barray AS CHARACTER EXTENT 3 NO-UNDO.
ASSIGN
barray[1] = "yes"
barray[2] = "no"
anotarray = ""
.
/***value can be stored randomly in variable barray. so we cannot specify [1],[2],[3] for if condition***/
/***based on req. I need to check both anotarray or barray <> "" ***/
IF (anotarray OR barray ) <> "" THEN DISP barray.
/*** ERROR thrown- An array was specified in an …Run Code Online (Sandbox Code Playgroud) 如果我们在每个 where 子句中使用查找函数会好吗?会导致性能问题吗?请帮助理解并提供如何避免的示例。
define variable cGroupID as character no-undo.
for each <table> no-lock where lookup(cGroupID,<table.fieldname>) <> 0:
**do something...**
end.
note - table field name can have multiple comma separated group
Run Code Online (Sandbox Code Playgroud) 谁能帮我从字符串中删除换行符?在 csv 文件导出期间,它会在单个单元格中创建 2 行。请在黑暗中扔一盏灯
lvc_string = "|
5678".
Run Code Online (Sandbox Code Playgroud)
删除换行符后应该是
lvc_string = "|5678".
Run Code Online (Sandbox Code Playgroud)