如何使用 ABL create/drop a table in Progress OpenEdge?
How to create/drop a table in Progress OpenEdge using ABL?
我只是想知道是否有办法使用 ABL 代码创建和删除 table(不是临时 table)。我知道 create/drop tables 通过数据字典工具。此外,我发现有一种方法可以使用 prodict/load_df.p 创建 table(通过加载 .df 文件)。但我正在寻找 ABL 中的 "CREATE TABLE" 和 "DROP TABLE" 之类的语句。
没有这样的声明。
从理论上讲,您可以简单地使用 CREATE _FILE 之类的东西,但细节没有记录在案,如果您搞砸了,您将陷入痛苦的世界。
支持的方法是调用数据字典 API(加载您已经找到的 .df 文件)。
正如 Tom 所说,ABL/4GL 无法做到这一点。您始终可以使用代码为 adds/drops 生成 DF 文件。
请记住,您无法对连接到数据库的用户进行大部分架构更改。 Progress 不会像 Oracle、DB2 等那样对待模式更改
ABL/4GL 个创建的表和 SQL 个创建的表有不同的存储池和规则。
我会创建一个 df 文件,然后使用
加载它
RUN prodict/load_df.p(INPUT DfFile).
因此您可以更改架构。不过我没有测试它,也不知道这是否适用于服务数据库(相对于单用户连接)。
如果您在单个会话中创建和删除表,那么也许您应该使用临时表。
我只是想知道是否有办法使用 ABL 代码创建和删除 table(不是临时 table)。我知道 create/drop tables 通过数据字典工具。此外,我发现有一种方法可以使用 prodict/load_df.p 创建 table(通过加载 .df 文件)。但我正在寻找 ABL 中的 "CREATE TABLE" 和 "DROP TABLE" 之类的语句。
没有这样的声明。
从理论上讲,您可以简单地使用 CREATE _FILE 之类的东西,但细节没有记录在案,如果您搞砸了,您将陷入痛苦的世界。
支持的方法是调用数据字典 API(加载您已经找到的 .df 文件)。
正如 Tom 所说,ABL/4GL 无法做到这一点。您始终可以使用代码为 adds/drops 生成 DF 文件。
请记住,您无法对连接到数据库的用户进行大部分架构更改。 Progress 不会像 Oracle、DB2 等那样对待模式更改
ABL/4GL 个创建的表和 SQL 个创建的表有不同的存储池和规则。
我会创建一个 df 文件,然后使用
加载它RUN prodict/load_df.p(INPUT DfFile).
因此您可以更改架构。不过我没有测试它,也不知道这是否适用于服务数据库(相对于单用户连接)。
如果您在单个会话中创建和删除表,那么也许您应该使用临时表。