我在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数据类型。
答案 0 :(得分:2)
我没有在我必须维护的任何4gl代码中使用TEXT数据类型,但是IBM 4GL By Example文档中有关TEXT字段的文档的快速视图表明4GL将Text blob视为一种特殊情况,由于潜在的内存使用,默认情况下不加载它们。
如果您查看示例18中的示例代码(抱歉,他们现在只有在线文档的pdf版本),它应该为您提供一个如何处理TEXT blob的相当直接的示例。
因为BLOB列可以包含非常大量的数据,所以4GL 程序不为BLOB变量分配空间,因为它执行其他变量 类型。 BLOB变量包含一个,而不是包含实际值 指向存储此数据的位置的指针。这个位置可以在 记忆,由程序创建的临时文件,或指定的文件 由程序员命名。 LOCATE语句使用BLOB值的位置初始化BLOB变量。