【发布时间】:2015-07-06 06:26:17
【问题描述】:
我只是想知道是否有一种方法可以使用 ABL 代码创建和删除表(不是临时表)。我知道通过数据字典工具创建/删除表。另外,我发现有一种方法可以使用 prodict/load_df.p 创建表(通过加载 .df 文件)。但我在 ABL 中寻找像“CREATE TABLE”和“DROP TABLE”这样的语句。
【问题讨论】:
标签: progress-4gl openedge
我只是想知道是否有一种方法可以使用 ABL 代码创建和删除表(不是临时表)。我知道通过数据字典工具创建/删除表。另外,我发现有一种方法可以使用 prodict/load_df.p 创建表(通过加载 .df 文件)。但我在 ABL 中寻找像“CREATE TABLE”和“DROP TABLE”这样的语句。
【问题讨论】:
标签: progress-4gl openedge
没有这样的说法。
理论上你可以简单地使用 CREATE _FILE 之类的,但细节没有记录,如果你把它搞砸了,你会陷入痛苦的世界。
支持的方法是调用数据字典 API(加载您已经找到的 .df 文件)。
【讨论】:
如果您在单个会话中创建和删除表,那么您可能应该使用临时表。
【讨论】:
就像汤姆说的那样,ABL/4GL 无法做到这一点。您始终可以使用代码为添加/删除生成 DF 文件。
请记住,您将无法对连接到数据库的用户进行大部分架构更改。 Progress 对待架构更改的方式与 Oracle、DB2 等不同。
ABL/4GL 创建的表和 SQL 创建的表有不同的存储池和规则。
【讨论】:
我会创建一个 df 文件,然后使用它加载它
RUN prodict/load_df.p(INPUT DfFile).
因此您可以更改您的架构。尽管如此,我没有对其进行测试,也不知道这是否适用于服务数据库(相对于单用户连接)。
【讨论】: