如何在Informix 4gl中引用TEXT类型?

时间:2012-07-25 16:10:30

标签: sql informix sqldatatypes 4gl

我在4gl模块中有以下代码:

DEFINE f_drec RECORD LIKE verhistd.*
DEFINE f_input
   RECORD
      long_desc LIKE verhistd.long_desc
   END RECORD
Let f_input.long_desc = f_drec.long_desc

其中verhistd.long_desc是TEXT数据类型。但是当我编译代码时,我收到此错误消息:

|
|      The variable "f_input.long_desc" is too complex a type to be used in an
| assignment statement.
| See error number -4323.

-4323的错误消息只是谈论数组和屏幕记录,而不是TEXT数据类型。

1 个答案:

答案 0 :(得分:2)

我没有在我必须维护的任何4gl代码中使用TEXT数据类型,但是IBM 4GL By Example文档中有关TEXT字段的文档的快速视图表明4GL将Text blob视为一种特殊情况,由于潜在的内存使用,默认情况下不加载它们。

如果您查看示例18中的示例代码(抱歉,他们现在只有在线文档的pdf版本),它应该为您提供一个如何处理TEXT blob的相当直接的示例。

  

因为BLOB列可以包含非常大量的数据,所以4GL   程序不为BLOB变量分配空间,因为它执行其他变量   类型。 BLOB变量包含一个,而不是包含实际值   指向存储此数据的位置的指针。这个位置可以在   记忆,由程序创建的临时文件,或指定的文件   由程序员命名。 LOCATE语句使用BLOB值的位置初始化BLOB变量。