【问题标题】:How to deal with CHARACTER variables, longer than the allowed maximum of 2000?如何处理 CHARACTER 变量,超过允许的最大值 2000?
【发布时间】:2021-05-19 04:14:29
【问题描述】:

我正在使用 Progress-4GL、appBuilder 和过程编辑器,版本 11.6。

我刚刚找到了一个CHARACTER 类型的全局变量(DEF VAR global_variable AS CHAR NO-UNDO.),最多包含12901 个字符。该变量仅用于在应用程序内传递信息,信息永远不会作为一个元组存储在表中。

该变量中的信息似乎处理得很好:内容是正确的。

然而,正如this URL 提到的,Progress 中的字符变量的最大长度是 2000 个字符,这让我担心:我担心有一天,可能会跨越另一个限制,从那一刻起,我们需要重新考虑整个想法,我希望为那一天做好准备。

因此,有人知道正在进行中的字符变量的“下一个”长度限制吗?

【问题讨论】:

    标签: string limit openedge progress-4gl


    【解决方案1】:

    你提到的那个参考指向了 SQL 的限制。

    在 ABL 中,一个 CHARACTER 变量可以容纳 ~ 32 k

    DEFINE VARIABLE c AS CHARACTER   NO-UNDO.
    
    ASSIGN c = FILL ("*", 31000) . 
    
    MESSAGE LENGTH (c) 
        VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
    

    除了你必须使用 LONGCHAR 有它的限制:

    • 稍慢
    • 不能在临时表或数据库表中建立索引。

    CHARACTER 变量始终存储在 CPINTERNAL 代码页中。 LONGCHAR 可以通过 FIX-CODEPAGE 语句使用不同的代码页。

    【讨论】:

    • 变量和字段之间也有区别。并非每种数据类型都可以是字段(例如 ROWID)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2014-09-02
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多