微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以使用 Progress Developer Studio for OpenEdge 的哪个工具来测试 ABL 查询?

如何解决我可以使用 Progress Developer Studio for OpenEdge 的哪个工具来测试 ABL 查询?

我刚刚编写了以下错误的 ABL 查询

FOR EACH T1 (WHERE T1.some-date = ' ')  AND 
            (integer(T1.num1) >= 100) AND 
            (integer(T1.num1) <= 200) AND 
            (T1.some-other-date = 01/12/2021) AND 
            (T2.Name = itsme),EACH T2 WHERE T2.num2 = T1.num2 
    BY T1.num1

如您所见,这是错误的,因为我将第一个括号放在“WHERE”前面而不是后面。最重要的是,我的名字“itsme”没有放在引号之间,所以 ABL 查询永远不会工作。

我一直在查看我的开发环境(“工具”菜单),但找不到 ABL 查询测试器。我还检查了目录“C:\Progressx86\OpenEdge\bin”,但作为新手我什么也没找到。

我已经下载了“DataDigger”应用程序,其中包含一个所谓的“MCF 查询测试器”,但这仅适用于单个表并且仅检查条件,而不是整个 ABL 查询

有谁知道我在哪里可以找到 ABL 查询测试器,首先进行语法检查(“WHERE”前面的括号)和(如果可能)进行数据测试(01/12/2021,是 1 月 12 日还是12 月 1 日?)?

提前致谢
多米尼克

解决方法

在 Progress Developer Studio for Openedge 中创建一个新的 OpenEdge 项目。使用必要的数据库连接在项目下创建一个新的 ABL 过程。将上述ABL代码复制到程序文件中,您应该可以在程序文件中看到错误和警告。

enter image description here

,

Progress Developer Studio 的 ABL Scratch Pad 视图允许执行临时查询。

https://knowledgebase.progress.com/articles/Knowledge/000055088

,

您没有提到您使用的是哪个编辑器,但一般而言,ABL COMPILE 语句执行语法检查。没有单独/独立的可执行文件来编译/检查语法。通常,您需要编写一个 .P 来执行编译。

如果您想使用基于 Ant 或 Gradle 的构建系统,您可以使用 PCTCompile Ant 任务。

至于日期格式,我认为这是在文档中,但没有。日期在硬编码时总是具有 MM/DD/YYYY 格式;小数在硬编码时始终使用 . 小数分隔符(即 123.45)。

,

测试您正在处理的查询的另一种方法是使用接受字符串的查询准备。

DEFINE QUERY q-Test FOR T1,T2. 
QUERY q-test:HANDLE:QUERY-PREPARE("your query string here").
,

我的一位同事向我展示了一个非常简单的解决方案:

在单独的过程窗口中复制查询并添加您想要查看的结果,如下所示:

FOR EACH T1 (WHERE T1.some-date = ' ')  AND 
            (integer(T1.num1) >= 100) AND 
            (integer(T1.num1) <= 200) AND 
            (T1.some-other-date = 01/12/2021) AND 
            (T2.Name = itsme),EACH T2 WHERE T2.num2 = T1.num2 
    BY T1.num1

/* To be added for viewing results */
DISPLAY T1.Field1 T1.Field2 T2.Field5
END.

并在编程环境中启动它 (F2)。
如果出现语法错误,编译器会显示错误。如果语法正确,则会启动一个弹出窗口,显示结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。