Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103400510
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-20 22:14:25

作者:oldbank  出处:
-4381        输入文件<文件名>有个无效的扩展名。文件名必须以.4gl作为扩展名。

当键入一个源程序名时不必输入文件扩展名或.4gl字根。然而,如果键入文件字根则
必须是.4gl;其它则不允许。如果键入非法的字根,去掉字根重新输入命令。如果文
件确实有一个不同的字根,必须将它改变。

-4382        不能扩充有数组成员的结构。

除了在LET语句,".*"及 THROUGH符号不可用於扩充有数组成员的记录。
除非是在LET语句,否则".*"及 THROUGH符号不可用於扩充有数组成员的记录。
错误-4382仅被NewEra返出。

-4382        包含数组类型元素的记录变量不能被 ".*" 或THROUGH 速记引用,
或用作一个函数参数。

可以定义一个以数组为元件之一的记录,但是必须用其全名record.part[n]列出该元
件。星号或THRU标记只能作为一个记录元件名称列表的速记符号。它不能在数组元件
名后产生一个方括号下标。

包含数组元件的记录不能作为参数给一个函数,但是可以用数组元件本身作为函数的
参数,只要以record.part的形式拼出它的名称即可。错误 -4382仅由NewEra
发出。

-4383        元素名1和元素名2不属于同一父记录。

所示的两个名称所用之处要求一个记录的两个元件;然而它们不是同一记录的元件。
检查两个名称的拼法,如它们确为所需要的,回到记录定义之处,查看它为何没有将
这两个名称作为元件字段引入。

-4384        符号<名称>不表示任何记录元素。

所示名称使用之处4GL期望为记录元件名称。检查名称的拼法。如果确为所需要的,回
到记录变量定义处,查看它为何未作为一个元件字段引入。

-4385        报表聚合不能嵌套。

聚合函数不能嵌套,主要因为在外部聚合积累的同时内部聚合值是不知道的。仅参考
字段和字段上简单表达式来重写聚合表达式。在AFTER GROUP OF 子句,你可以从一组
程序变量行中保存聚合值,以便用它计算后来组上的聚合。

-4386        在该报表中有太多的ORDER BY 字段。最大数目为该数。

排序的字段的数目存在一个极限。你必须重新设计该报表以便不超出<数字>字段的排
序。或者在传递数据到报表前排序该数据,并且在报表主体的ORDER BY 语句中指定
EXTERNAL关键字。一般来说,由数据库服务器产生正确次序的行更为有效。(在产生行
的游标中使用SELECT...ORDER BY)。

-4387        右侧的空白必须大于左侧的空白。

如果报表右侧的空白不大于左侧的空白,每行将没有空间给数据。检查在OUTPUT
节中的两个MARGIN使之成为合理值。

-4388        对每一个报表输入参数,只允许一个BEFORE GROUP OF 子句和一个AFTER
GROUP OF 子句。


报表试图为单一的报表参数定义第二个BEFORE GROUP OF 或AFTER GROUP OF 块。只允
许有一个控制块。找出关于该参数的全部块组合成一个语句。

-4389        报表中的IF语句有太多级嵌套。

IF 语句的嵌套超过了五级。可能ENDIF语句被忽略。否则,必须修改报表逻辑使嵌套
不太深。

-4390        每个MENU语句只允许有一个BEFORE MENU 子句。

在MENU中仅可能有一个BEFORE块。确保你的MENU语句正确使用END MENU 标定范围。组
合所有准备好的代码成为一个单一的BEFORE MENU 块。
该错误仅被4GL 版本4.1返回。

-4391        当 执行 INPUT BY NAME 或 INPUT ARRAY时,显示字段名只能被显示字段
名后缀指定。屏幕数组和屏幕记录元素是不允许的。

只有单一屏幕表格显示字段的名称可和一个 BEFORE或 AFTER子句一起使用。这个显
示字段的名称在屏幕表格定义的ATTRIBUTES 节中定义;它通常与数据库字段的名称
相同。下面是一些 ATTRIBUTES节中的例子:

atag=customer.customer_num,noentry;
tag2=formonly.total,format="######.##";

这些显示字段的名称分别是customer_num和 total。

在4GL语句中存在一个问题,以另一个名称和一个圆点作为一个名称的前缀,这条句
法用于指定屏幕记录或屏幕数组的元件,或不同表格中相同名称的数据库字段,但此
处该句法不适用。

-4392        4GL 编译器运行的数据空间内存不够用来容纳4GL程序符号。如果程序模块非
常大,可以把它分割成分离的模块来改变这种情况。

重新组织程序来源成为一组可独立编译的模块。另外,可修改程序以便只需更少的唯
一符号,例如使用数组来代替许多相似的变量。这种错误也同CONSTRUCT
语句相关。如果一个CONSTSRUCT 覆盖很大数量的显示字段,可移动该语句到一个
函数并且把此函数放置在不同的源模块以使程序不做其它修改。

-4393        MENU 语句超越了选项的最大数。

每个菜单中的最大选项数为25个。确保END MENU语句不被忽略,它连接两个菜单。
如果菜单确为所需要的,你必须修改程序使它不超越极限,例如建立一个菜单的
级联。

-4394        警告:在非正式函数头中的正式参数不能有初始值。该参数的初始值将被忽
略。如果要使用该值作为隐含变量,应使用正式函数头来指定此缺省值。

尽管在正式(原型函数风格〕定义中参数可以有初始值,而非正式函数定义是不可以
的,该参数的初始值将被忽略。如果要使用该值作为缺省参数,应使用带函数原型的
正式定义格式来指定此缺省值。这个错误仅被NewEra 返回。

-4395        对一个数据库字段名指定了过多的下标。

在该语句中数据库字段的名称后跟了一个方括号,括号中有一些数字。带方括号的数
据库字段的唯一有效的用法是从一个字符字段中选定一个子串。但是,在这种用法中
必须准确地写两个数字,即子串的开始和结束字母的下标。这里使用了多于两个的数
字,检查并更正标点。

-4396        带有该行数的MENU说明无结束。

4GL不能标识一个END MENU语句去匹配处于该行数的MENU语句。从该行开始找下去直到
寻找到应该是结束语句的地方,加入结束语句。

-4397        行<行号>中的IF语句无结束。

4GL不能标识一个END IF 语句去匹配处于该行数的IF语句。从该行开始干下找直到寻
找到应该是结束语句的地方,加入结束语句。

-4398        行<行号>中的CASE语句无结束。

4GL不能标识一个END CASE语句去匹配处于该行数的CASE语句。从该行开始找下去直到
寻找到应该是结束语句的地方,加入结束语句。

-4399        行<行号>中的WHILE语句无结束。

4GL不能标识一个END WHILE 语句去匹配处于该行数的WHILE语句。从该行开始找下去
直到寻找到应该是结束语句的地方,加入结束语句。

-4400        行<行号>中的FOR语句无结束。

4GL不能标识一个END FOR 语句去匹配处于该行数的FOR语句。从该行开始干找去直到寻找到应该是结束语句的地方,加入结束语句。

-4401        一个连接操作符产生的串过长,不能放入目标串变量中。

该语句连接两个以上的字符串并将结果存储于另一个类型为CHAR或VARCHAR的变量中,
但是,连接的结果超过了接收变量的长度。如果超过的长度是结尾的空格,可使用
CLIPPED函数禁止结尾空格进入合并的结果中。否则,必须定义接收变量的长度至少为
输入变量的长度之和。

-4402        在该类型语句中,下标只用于数组变量以从中选定单独的数组元素。

该语句包括一个后跟方括号的名称,但是该名称不是一个数组变量。检查语句的标点
并且拼写全部的名称。带下标的名称一定是数组。如果想在语句中使用一个字符子
串,必须修改程序。

-4403        该名称的变量的维数与下标不匹配。

在该语句中,带有这个名称的数组其下标超过了定义的维数。检查下标的标点。如果
是所要的,回顾该变量名被定义处的DEFINE语句。

-4405        函数已超越了最大允许的参数个数。

这条信息不会被当前任何Informix产品返回。如果发生该错误,请记录全部环境并与
Informix 技术支持部联系。

-4406        在上行中有一个不匹配的引号。

源程序行中含有奇数个引号。从左至右检查该行,保证全部文字字符串以一个引号开
始和结束。所有文字串必须在同一逻辑行开始和结束。有两种方法写出一个长的文字
串,首先,可以在行的最后用一反斜线以退出行结束符(然而,一个单独的引用串的
总长度的最大值固定为80个字符)。第二,在DISPLAY和LET语句中,可用一逗号连接
较短的文字串。下面有两个例子:

DISPLAY "abcdefghijkl\
mnopqrstuvwxyz"
DISPLAY "abcdefghijkl",
"mnopqrstuvwxyz"

显示的字母中均未嵌入空白符。

-4407        在上行中有一个不可打印的字符。

该源程序行中包含一个不正规的字符。4GL认为源程序可能被毁坏了。编辑文件并删除
坏字符。如果用编辑器不能看见或无法选定该字符,就不得不删除该行并重新键入。

-4408        在上行中有一个过长的引用串。

文字字符串的长度极限是80个字符。但是,在DISPLAY和LET语句中可使用一个逗号连
接较短的字符串。例子可见信息-4406。

-4409        在上行中有一个无效的字符。

该源程序行中包含非可打印文本或不正常的空白。删去无效字符(该字符在正常编辑
器下可能是不可见的)。如果在编辑器中看不见或无法选定无效的字符,只能删除该
行再重新键入。

-4410        在前面的行中有一个过大或过小的数值常数。

该行中有个数值常数不能处理。检查全部文字数的数字和标点;例如,确信你没有键
入一个字母作为数字。任何一个数都不能超越50个数字。按照上下文,数可能被限制
在以下三个范围之一:

SMALLINT: 绝对值不超越 32,767
INTEGER: 绝对值不超越2,147,483,647
DECIMAL: 绝对值从10-130到10140 

-4411        在上行中有一个过长的字母数字标识符。

任何标识符不能超越50个字符。检查该标识符的拼写和全部标识符的标点(可能两个
名称连在一起了)。

-4412        从RUN命令来的值只能被返回给INTERGER或SMALLINT变量。

RUN命令只能从一个执行程序中返回整型的返回码。在这种情况下无自动数据转换;结
果必须被指定为一个整型变量。

-4413        标签<标签名称>已经在函数/报表中定义过。

标号出现在两个以上的LABEL语句中。检查标号名,如它确为所要的,搜索一遍该函
数、报表、句柄或主程序的其它LABEL语句找到重名的那些,将它们改为其它名称。
该错误只能被NewEra返回。

-4413        标签名已在主程序或函数中定义。

标签出现在两个以上的LABEL语句中。检查标签名,如它确为所要的,搜索一遍该函数
或主程序的其它LABEL语句找到重名的那些,将它们改为其它名称。该错误只能被4GL
返回。

-4414        标签<标签名称>已经使用但从未定义在函数/报表中。

一个 GOTO 或 WHENEVER 语句指向所带的标号,但在当前的函数、报表、句柄或
主程序中没有相应的LABEL语句。如果该标号确是所要的,找到定义它的LABEL语句
并做检查。不能用GOTO转移出一个程序;标号必须在使用它的同一函数主体中做
定义。这个错误只能被NewEra返回。

-4414        使用了一个标号名称但未在上面的主程序或函数中定义该标号。

一个 GOTO 或 WHENEVER 语句指向所带的标号,但在当前的函数、报表、句柄或
主程序中没有相应的LABEL语句。如果该标号确是所要的,找到定义它的LABEL语句
并做检查。不能用GOTO转移出一个函数;标号必须在使用它的同一函数主体中做
定义。这个错误只能被4GL返回。

-4415        在一个报表中指定的ORDER BY或GROUP项必须是一个报表参数。

用于ORDER BY ,AFTER GROUP OF,或BEFORE GROUP OF语句中的名称必须也在REPORT
语句的参数列表中。不可能基于一个全局变量或其它表达式排次序或组成组。检查语
句中名称的拼法将它们与REPORT语句相比较。

-4416        在validation串中有一个错误: "%s"

在syscoval表中更改合适的DEFAULT 或INCLUDE值。

-4417        这种语句类型只能用于报表。

象PRINT、SKIP、NEED之类的语句只能在一个报表函数的主体中有意义,此时存在一个
隐含的报表列表去接收输出。

-4418        用于INPUT ARRAY 或DISPLAY ARRAY语句的变量必须为数组。

跟在词DISPLAY ARRAY 或INPUT ARRAY后的名称必须是记录的一个数组名。检查名称的
拼法,如果它是所要求的,找到并检查DEFINE语句看为何它不是一个数组。(如果要
显示或输入一个简单变量或一个数组的单一元素,使用DISPLAY 或 
INPUT语句)

-4419        用在CONSTRUCT语句中的变量必须为字符变量。

跟在词CONSTRUCT后面的名称必须是定义为CHARACTER或VARCHAR的变量的名称。因为接
收到的串可能很长,因此它必须是个长变量。检查名称的拼法,如果它是所要求的,
找到并检查DEFINE语句看为何它不是字符类型。

-4420        在header或trailer子句的一个IF-THEN-ELSE语句的IF部分和ELSE部分中打印
的行数相等。

4GL需要知道填入header和尾部部分的行数(否则它不知道放入该页的行数的明细情
况)。由于它不知道IF语句的哪一部分将被执行,它要求两者产生相同行数的输出。

-4421        不能在另一个INPUT语句或PROMPT语句中使用INPUT语句,即使该语句被
包括在一个条件或循环语句中。

可以从另一个INPUT语句、或从一个PROMPT语句中执行INPUT语句,但是为了做到这一
点必须将INPUT语句放入一个函数中然后调用该函数。不能在另一个INPUT语句中嵌入
INPUT语句的文本。

-4422        不可以在另一个INPUT语句中使用CONSTRUCT语句。包括当CONSTRUCT被包括在
一个条件语句或一个循环语句中的情况。必须调用一个函数执行CONSTRUCT
语句。

可以在一个INPUT语句中执行CONSTRUCT语句,但是为了做到这一点,必须将CONSTRUCT
语句放入一个函数然后调用该函数。不能在INPUT语句中嵌入CONSTRUCT
语句的文本。

-4423        用于DISPLAY语句的CLIPPED和USING选项当显示到一个屏幕表格的
显示字段时不能使用。

CLIPPED和USING关键字不能用于DISPLAY TO和DISPLAY BY NAME语句。一个屏幕表格的
显示字段的显示格式由显示字段的属性控制,这些属性在屏幕表格文件中指定。在一
个显示字段中结尾的空格不显示。为了得到USING的效果,编辑屏幕表格文件并添加
USING属性给一个或多个显示字段。

-4424        变量<变量名称>尚未定义成记录或对象。

表示的变量已与一个星号、或THRU关键字、THROUGH关键字合用。但是它未被定义为
一个记录或对象。检查名称的拼法,如果它确是你所要的,定位于变量定义的地方,
找出它为何未象所期望的那样定义这个错误只由NewEra传回。

-4424        变量<变量名称>未被定义为一个记录。

表示的变量已与一个星号、或THRU关键字、THROUGH关键字合用。但是它未被定义
为一个记录。检查名称的拼法,如果它确是你所要的,定位于变量定义的地方,找出
它为何未定义为记录。这个错误只能被4GL返回。

-4425        变量<变量名>未被定义为LIKE表<表名>。

命名的变量用于一个UPDATE语句的SET子语中。尽管如此,它未被定义为LIKE被修改
的表名。结果,4GL不能加入一个带表字段的记录元件。可以改变变量的定义,或
重写UPDATE语句以表示字段名称和记录元件之间显式的关系。

-4426        PRINT语句只能用于报表中。如果你希望做无屏幕定位的打印,使用无任何显
示字段或屏幕目标的DISPLAY语句。

关键字PRINT特别用于给一个报表产生一行输出。关键字DISPLAY将输出引入屏幕。可
能这个语句被偶然从一个报表主体中拷贝而来,更可能的原因是仓促中试图在屏幕上
显示一个临时的输出。在后一种情况下,只要简单地将PRINT改为DISPLAY就可以了。

-4427        DISPLAY语句的COLUMN特性只能用于无屏幕或显示字段目标的显示中。

COLUMN函数返回一个串,其中的空格足够长使之能达到某种用于显示输出的字段。可
以与不合格的DISPLAY和DISPLAY AT合用,但是它与DISPLAY TO 或DISPLAY BY NAME不
相适应。

-4428        不可以在一个INPUT或PROMPT语句中使用PROMPT语句,即使它包括在一个
条件或循环语句中。

可以从另一个PROMPT语句或一个INPUT语句中执行PROMPT语句,但是为了做到这点必须
将这个PROMPT语句放入一个函数中并调用该函数。不能在一个INPUT语句或另一个
PROMPT语句中嵌入一个PROMPT语句的文本。

-4429        报表与函数参数不能是数组。

不能传递一个整个的数组作为函数的参数,但可以用下标传递一个单独的数组元素。
可能产生这种错误的数组是一个使用星号标记传递的记录变量的元件。这个错误只能
被4GL返回。

-4429        参数不能是数组、带有数组成员的记录或者常数。

不能传递一个整个的数组或常数作为函数的参数,可以用下标传递一个单独的数组元
素。可能产生这种错误的数组是一个使用星号标记传递的记录变量的元件。这个错误
只能被NewEra返回。

-4430        数值无法用RETURN从报表传出。

报表不能含RETURN语句,因这会将控制权传回给调用这个报表的程序。这个错误只由 
NewEra 传回。

-4430        一个报表的记录参数不能包括是数组的成分。

不能传递一个整个的数组来作为函数的参数。可以用下标传递数组的元素。在这种情
况下,一个记录变量用星号标记指定为一个参数,而记录的元件之一是一个数组。
 
阅读(897) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~