String 如何处理字符变量,长度超过允许的最大值2000?

String 如何处理字符变量,长度超过允许的最大值2000?,string,limit,openedge,progress-4gl,String,Limit,Openedge,Progress 4gl,我正在使用Progress-4GL、appBuilder和过程编辑器11.6版 我刚刚找到了一个字符类型的全局变量(DEF VAR global_变量作为CHAR NO-UNDO.),最多包含12901个字符。变量仅用于在应用程序中传递信息,信息永远不会作为一个元组存储在表中 该变量中的信息似乎处理得很好:内容是正确的 然而,正如前面提到的,一个字符变量的最大长度是2000个字符,这让我担心:我担心有一天,另一个限制可能会被打破,从那一刻起,我们需要重新思考整个想法,我希望为那一天做好准备 因此

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

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

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

然而,正如前面提到的,一个字符变量的最大长度是2000个字符,这让我担心:我担心有一天,另一个限制可能会被打破,从那一刻起,我们需要重新思考整个想法,我希望为那一天做好准备

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


提前感谢您提到的SQL限制点

在ABL中,一个字符变量可以保存~32 k

DEFINE VARIABLE c AS CHARACTER   NO-UNDO.

ASSIGN c = FILL ("*", 31000) . 

MESSAGE LENGTH (c) 
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
除此之外,您还必须使用LONGCHAR,因为它具有以下限制:

  • 稍慢
  • 无法在临时表或数据库表中编制索引

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

您提到的引用指向SQL限制

在ABL中,一个字符变量可以保存~32 k

DEFINE VARIABLE c AS CHARACTER   NO-UNDO.

ASSIGN c = FILL ("*", 31000) . 

MESSAGE LENGTH (c) 
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
除此之外,您还必须使用LONGCHAR,因为它具有以下限制:

  • 稍慢
  • 无法在临时表或数据库表中编制索引

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

变量和字段之间也有区别。不是每个数据类型都可以是字段(例如ROWID)。变量和字段之间也有区别。并非每个数据类型都可以是字段(例如ROWID)。