我正在致力于能够刷新数据库环境的第一步。
首先,我将环境 1 中的表导出到名为 Test1 的 csv 文件。
OUTPUT TO VALUE("X:\Test\Test1.csv").
FOR EACH Test1 NO-LOCK:
EXPORT DELIMITER ',' Test1.
END.
OUTPUT CLOSE
Run Code Online (Sandbox Code Playgroud)
然后我将此文件导入到环境 2,其中不知道 test1 中的所有记录是否都存在于环境 2 中。也不知道顺序是否相同(这是以下功能受限的地方)
INPUT FROM "X:\Test\Test1.csv".
FOR EACH Test12:
IMPORT DELIMITER ',' Test1.
END.
Run Code Online (Sandbox Code Playgroud)
因此,我需要能够查看环境 2 中的现有记录是否存在于从环境 1 导出的文件 Test1 中,并通过调整环境 2 中的这些记录来应用更改/更新。
不幸的是,我无法更具体地提供姓名和日期,因为这是保密的
我尝试使用显示的脚本通过删除仍然运行良好的记录来编辑 notepadd++ 中的导出文件 Test1。然而,当我还通过删除记录删除了留下的空白规则时,所有内容都向上移动了一行,它提到entryID(第一列)已经存在。这意味着它存在于文件的另一行中(这是我删除记录之前的下面的行。)。
development-environment production-environment progress-4gl openedge
假设我的系统中有一个简单的过程文件:
C:\git\project\helloworld.p
在这个过程文件中,代码需要知道它在运行时在我的系统上的位置。所以在我的电脑中,在这种情况下它将是:
C:\git\project\helloworld.p
在我朋友的电脑上可能是:
D:\codingprojects\project\helloworld.p
有什么办法可以在运行时解析过程文件位置吗?
我如何将其(如下)读取到临时表中:
{
"args": {
},
"data": "{\"name\":\"morpheus11\",\"job\":\"leader1221\"}",
"files": {
},
"form": {
},
"headers": {
"Accept": "application\/json",
"Content-Length": "40",
"Content-Type": "application\/json",
"Host": "httpbin.org",
"User-Agent": "OpenEdge-HttpClient\/0.4.0 (UNIX\/64) OpenEdge\/99.2.99.0.9999 Lib-ABLSockets\/0.5.0",
"X-Amzn-Trace-Id": "Root=1-9999998e-0e281713363302e331999999"
},
"json": {
"job": "leader1221",
"name": "morpheus11"
},
"origin": "888.53.150.88",
"url": "https:\/\/httpbin.org\/post"
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所写的。现在导出流 dOut1 不产生任何东西。我的猜测是,我没有指定所有的表...我需要定义所有 json 节点,例如:Args、Data、Files、Headers、Origin 和 URL?感谢您的帮助
def temp-table tt serialize-name 'json'
field job as char
field name as char.
def dataset args for tt.
def var dURL as char no-undo init "https://httpbin.org/post".
def var dRequest as …Run Code Online (Sandbox Code Playgroud) 我已经编写了一个程序,用于将某些文本文件导出到特定目录,我更喜欢使用MTIME来使每个导出文件具有唯一名称,这是最好的方法,但是问题出在我们的服务器上,另一个过程是使用MTIME导出具有不同数据的相同文件名因此将有机会巧合和改写。您能告诉我拥有唯一文件名的最佳方法吗?让我分享一些样本。
DEFINE INPUT PARAMETER ipData1 AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER ipData2 AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER ipData3 AS CHARACTER NO-UNDO.
DEFINE VARIABLE cExportData AS CHARACTER NO-UNDO FORMAT 'X(250)'.
DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
DEFINE VARIABLE cExt AS CHARACTER NO-UNDO.
DEFINE VARIABLE cSFTL AS CHARACTER NO-UNDO FORMAT 'X(150)'.
DEFINE VARIABLE cMessageDateTime AS CHARACTER NO-UNDO.
ASSIGN
cPath = "R:\Downloads\progress\"
cExt = ".Txt"
cMessageDateTime = "123456789".
OUTPUT TO VALUE (cPath + cMessageDateTime + STRING(MTIME) + cExt ).
put unformatted ipData1 …Run Code Online (Sandbox Code Playgroud) 这是在Linux上。请没有Windows代码。进步崔(11.6)。
我有一个在linux上创建csv文件的过程。
一个单独的进程(程序)将提取这些CSV文件并将它们通过ftp传送到给定的站点。
Progress 4GL(Openedge)中的ftp命令是什么?
整数和十进制数据类型只接受10位数后,获取错误消息值太大,不适合整数或十进制.正在进行的整数和十进制数据类型的最大限制4gl?是否可以在进行小数位后4位打印100位数?