【问题标题】:How to create/drop a table in Progress OpenEdge using ABL?如何使用 ABL 在 Progress OpenEdge 中创建/删除表?
【发布时间】:2015-07-06 06:26:17
【问题描述】:

我只是想知道是否有一种方法可以使用 ABL 代码创建和删除表(不是临时表)。我知道通过数据字典工具创建/删除表。另外,我发现有一种方法可以使用 prodict/load_df.p 创建表(通过加载 .df 文件)。但我在 ABL 中寻找像“CREATE TABLE”和“DROP TABLE”这样的语句。

【问题讨论】:

    标签: progress-4gl openedge


    【解决方案1】:

    没有这样的说法。

    理论上你可以简单地使用 CREATE _FILE 之类的,但细节没有记录,如果你把它搞砸了,你会陷入痛苦的世界。

    支持的方法是调用数据字典 API(加载您已经找到的 .df 文件)。

    【讨论】:

    • 您可以使用 SQL 语句来执行此操作吗?那里有一个 CREATE TABLE 和 DROP TABLE ......那不会完成同样的事情吗?
    【解决方案2】:

    如果您在单个会话中创建和删除表,那么您可能应该使用临时表。

    【讨论】:

      【解决方案3】:

      就像汤姆说的那样,ABL/4GL 无法做到这一点。您始终可以使用代码为添加/删除生成 DF 文件。

      请记住,您将无法对连接到数据库的用户进行大部分架构更改。 Progress 对待架构更改的方式与 Oracle、DB2 等不同。

      ABL/4GL 创建的表和 SQL 创建的表有不同的存储池和规则。

      【讨论】:

        【解决方案4】:

        我会创建一个 df 文件,然后使用它加载它

        RUN prodict/load_df.p(INPUT DfFile).
        

        因此您可以更改您的架构。尽管如此,我没有对其进行测试,也不知道这是否适用于服务数据库(相对于单用户连接)。

        【讨论】:

        • 是的,它适用于单用户模式和多用户模式(服务数据库)
        猜你喜欢
        • 2012-03-19
        • 1970-01-01
        • 1970-01-01
        • 2014-03-19
        • 2020-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多