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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-20 22:15:37

作者:oldbank  出处:
-4057        一个分类不能用PRIVATE内在函数从一个分类导出。

这个语句用一个DERIVED FROM子句说明一个新的分类。然而,指定的基分类有一个或
多个被说明了PRIVATE的内在函数(分类构造符,象!copy()的函数)。一个基分类的内
在函数对于从相同的导出分类函数内部调用必需是可使用的。私有成员不能被这样调
用;因此你不能用私有的内在函数从一个基分类导出一个分类。确认,你指定了正确
的基分类;并检查它的说明。

-4058        有结构符名字的符号不是一个函数。

一个分类名字后跟一个成员变量或常量的名字在这个上下文中是不允许的。

-4059        指定的参数表达式比函数名字说明的调用参数多。

这个语句调用函数名字,但它指定的参数表达式比函数名字说明的调用参数多。
检查参数表的句法。检查函数说明的参数的期望数和类型。

-4060        函数"name"的没有缺省的实际参数比规定的参数少。

这个语句调用函数名字,但它指定的参数表达式比函数名字说明的调用参数少。检查
参数表的句法。检查函数说明的参数的期望数和类型。

-4062        警告:非正式的函数"name"在不同的地方返回(或期望返回)不同的结果数。

在这个来源模块中一个以上的地方调用该函数名字,且函数名字被隐含返回不同个数
的参数。可能这个是正确的;在不同的环境中返回不同的数值写到函数是可能的。检
查是否属于这种情况,以及每种情况将被返回的期望值的数。
-4063        函数"name"不返回任何结果。

该语句在指示函数应返回一个或多个值的上下文中调用函数"name"。但是,在模块中
已说明的此函数无RETURNING子句或使用RETURNING VOID。确认,调用的是你预期
的函数,然后检查其说明。

-4064        返回值的类型与函数"name"说明的返回类型不匹配。

函数"name"不是隐含说明的,但已经用一个原型调用了,且当前的调用提供一个不同
的原型。确认,你调用了你预期的函数,然后检查它的近期调用或为它建立一个隐含
的说明。

-4065        对同一个例外类"name"有多个例外处理。

在这个块中,相同的例外分类有两个或多个 ON EXCEPTION 语句。只有一个可以被调
用。检查该语句并确认,每一个都指定正确的例外类,取消或合并冲突的句柄。

-4066        RETURN语句不允许在内部函数的主体中。

这个语句是一个内部成员函数(分类构成符,!copy,等等)的定义的一部分。这些函数
没有显式的返回值;或者更确切地说,它们返回的值是由编译器自动产生的代码产生
的。删除该RETURN语句。

-4067        这个RETURN语句必须提供一个值。

这个RETURN语句没有指定一个返回值,但该函数已经用一个指定不同的VOID的
RETURNING子句说明了。如果你想在没有产生一个值之前中止一个函数,你可以在 
END FUNCTION 语句上放置一个标签并使用一个GOTO,或者重新设计该函数的逻辑避免
提前退出。

-4068        函数"class::member"没有被说明成SHARED。

这个语句用双冒号句法调用一个分类成员函数。然而,指定的成员函数没有被说明成
SHARED。只有共享的成员函数可以用这种方式调用;正规成员函数必须通过参考一个
对象进行调用,因为它们需要该对象参考的SELF参考值。检查是否已经指定了你预期
的分类和成员,然后检查那个类的说明。

-4069        被调用成员函数"name"所在的表达式的类型不是一个分类。

这个语句企图既用范围分解(:)操作符也用记录成员(.)操作符调用指定的函数。然
而,范围分解(:)操作符左边的名字不是一个分类的名字(该名字是分类的一个成
员),或者,记录成员(.)操作符左边的名字不是一个对象的名字(对象的参考名字是
一个成员)。如果你试图通过一个参考对象调用名字,使用对象.名字语法。否则,
确认,你已经指定了你预期的分类和成员名字并检查该类的说明。

-4070        不能设定"SELF"

这个语句将给函数的隐含名为SELF的参数设定一个新的值。由于SELF的值在任何参考
SELF对象的一个成员中是隐含引用的,因此,不允许对它进行设定。

-4071        不能对常数“<名称>”赋值。

此语句对<名称>赋一个新值,但该<名称>是使用CONSTANT来说明的。常数不占用内存
空间也不能设定新值。检查<名称>是否是需要使用的标识符。检查它的说明。可能你
想要设定一个模块级的变量名称,但它在上下文中被预先说明为局部常数或者成员常
数。

-4072        不能扩展无成员结构。

这条语句试图进行扩展,但失败。该扩展具有形式<对象>.*,但所说的对象没有任何
公共成员变量,所以此扩展设置是空的。检查你指定了正确的类和成员。

-4073        在THRU 说明中开始和结束名不是目标记录的成员。

此语句对一些带有“first THRU (或者THROUGH)last"限定的结构(表,记录或对象)
做参考。事实上first 或last不能作为聚合的元素。检查这两个名称的拼写。

-4074        不允许超过两个子串的索引表达式。

子串限定包含一对整型表达式,用逗号分隔和括号包围(例如:name[1,23])。第一个
数值不能大于第二个数,它们必须为正数并且不大于字串长度(或对接收数据类型说
明的长度)。

-4075        简单串表达式必须使用类型CHAR 或 VARCHAR。

编译程序期望一个串表达式,但该表达式既不是CHAR 也不是VARCHAR数据类型。

-4076        CAST 对象的类必须是右参数指定的类的基类。

不能将一个对象放入任意的类中;只能将它放入从它声明的类派生出来的类中。在这
个语句的CAST表达式中,左边的参考对象声明的类不是右边参数命名的类的基类。回
顾表达式以确定已经指定了想要指定的对象(可能需要使用引号将参考对象引起来)
和目标类。

-4077        这个操作对这种类型的操作数是无效的。

操作符不能接受这种类型的操作数。更正其它任何可能报告的错误,并且检验这个操
作符是否定义了这种类型的操作数。然后重新编译程序。

-4078        遗漏操作数,或是不支持的类型。

操作符被指定操作一个无效的类型。可能一个函数返回VOID,一个blob
(TEXT或BYTE),或FOREIGN结果。IS NULL和IS NOT NULL操作符能用于blob
和FOREIGN操作数,并且能从其它相同类型的操作数或NULL接收赋值。

-4079        操作不允许在索引表达式中。

一个象扩展 (.*),COPY,NEW,或THRU这样的操作试图在一个索引表达式中。

-4080        警告:对NULL的操作返回NULL

当编译器正在对表达式进行优化时,发现一个表达式由一个文字值组成,这其中至少有一个是NULL。

-4081        警告:一个DATATIME表达式不能是负的。

一个"-"操作符作用于一个DATETIME操作数。时间点没有负值。一个间隔可以是负的,
但一个DATETIME不能。检查表达式的句法并修改使它大于或等于零。

-4082        MATCH和LIKE操作的操作数必须是CHAR或-VARCHAR类型。

这个语句使用的MATCH或LIKE操作符带有一个数字的或二进制的参数表达式。在这种情
况下,没有数据类型的自动转换。检查表达式是否写得如你所想,修改它以在与MATCH
或LIKE使用前给字符变量赋值(强制类型转换)。

-4083        警告:外部变量的初始化将被忽略。

这只是一个警告。这个语句说明一个同时具有EXTERNAL关键字和一个初始化的表达
式。初始化一个变量只能在定义它的地方(也就是为它分配内存的地方) 进行。这是
一个说明,不是一个定义,所以初始化被忽略。

-4085        不能输出这个类型的表达式。

语句试图输出一个不能被输出类型的表达式,如FOREIGN,或一个导致调用返回VOID的
函数的表达式。

-4091        不能将一个数组作为一个整体赋值或引用。使用索引指定单独的元素。

编译器试图将一个表达式的结果转换为与另一个表达式的类型相一致,并且它们之中
只有一个是数组。或者二者都必须是数组类型,或者都不能是。

-4092        CLASS和非CLASS类型失配。

编译器试图将一个表达式的结果转换为与另一个表达式的类型相一致,并且它们之中
只有一个是一个CLASS。应该二者都是CLASS类型,或者都不是。

-4093        RECORD和非RECORD类型失配。

编译器试图将一个表达式的结果转换为与另一个表达式的类型相一致,并且它们之中
只有一个是RECORD。或者二者都是RECORD类型,或者都不是。

-4094        相比较的CHAR或VARCHAR类型的长度不一致。

编译器试图在两个串类型之间进行一个比较(象比较函数标识),并且两个串有不同
的边界。

-4095        记录具有不同数目的域或不同类型的域。

在多个域的赋值中被赋的值与接收的记录或对象的域匹配不正确。检查值表达式的句
法;然后回顾接收变量的说明。

-4096        表达式类必须等于或派生于结果类。

语句试图将一个类的值赋予一个不是从原来的类派生的不同的类的对象

-4097        多重说明类"name"

这个类已经在前面的源模块(可能在一个包含文件)中说明。只允许一次说明。找出
这个类所有的说明并减少到一个。

-4098        扩展的表达式类型必须是类或记录。

这个语句是指<名称>.*(或使用THRU标志) ;而所指的名称不是说明为一个记录或一个
什么类的对象。检查名称的拼写和它的说明。

-4099        CAST to的类型必须是一个类。

在这个语句中CAST操作符的右边的参数不是一个类的名称。回顾这个语句的句法和拼
写。确定已经包含了所有需要的头文件以说明类。

-4100        常数标识符"name"的不合法的定义。

一个已经建立为一个常数标识符的名称出现在一个新的标识符的说明中。假设,例
如,maxval已经在类x中说明为一个常数,并且后来又有VARIABLE x::maxval INT
说明产生。

-4103        编译器在文件"name"的<行号>处侦测到一个内部错误。请联系你的系统管理
员或Informix Software, Inc.以报告这个错误。


记录指定的文件名和行号。然后报告这个内部错误。

-4104        一个字段的值的类型与一个变量的类型不匹配。

INITIALIZE语句不能在这个字段值的类型和对应的变量的类型之间建立一个匹配。

-4106        期待一个DATETIME类型的表达式。

在一个EVENT语句中,一个函数定义或说明,一个EXTERNAL REPORT语句,一个HANDLER
语句,一个函数调用,或就是一个表达式,编译器发现了一个DATETIME表达式以外的
一些东西。

-4107        期待一个INTEGER或SMALLINT类型的表达式。

在一个EVENT语句中,一个函数定义或说明,一个EXTERNAL REPORT语句,一个HANDLER
语句,一个函数调用,或就是一个表达式,编译器发现了一个INTEGER或SMALLINT表达
式以外的一些东西。

-4108        期待一个DATE类型的表达式。

在一个EVENT语句中,一个函数定义或说明,一个EXTERNAL REPORT语句,一个HANDLER
语句,一个函数调用,或就是一个表达式,编译器发现了一个DATE表达式以外的一些
东西。

-4109        期待一个DATE或DATETIME类型的表达式。

在一个EVENT语句中,一个函数定义或说明,一个EXTERNAL REPORT语句,一个HANDLER
语句,一个函数调用,或就是一个表达式,编译器发现了一个DATE或DATETIME表达式
以外的一些东西。

-4110        不能使用超过一个的REPORT TO选项在一个REPROT过程的-OUTPUT节。

在这个OUTPUT节中,语句REPORT TO出现了超过一次。只允许一个这样的指定。移去一
个以外的所有。

-4117        这里期待一个常数表达式。

在这个CONSTANT语句中至少有一个常数表达式的一个值不能在编译时计算。参考
-INFORMIX-4GL Language Reference 中的"Constant -Expressions"以得到何种类型
的操作能被用于常数表达式的信息。

-4118        这种数据类型的表达式不允许在常数表达式中。

指定的表达式不能计算出一个常数。更正报告出的其它的和这个表达式冲突的错误并
重新编译。

-4119        在常数表达式中依赖于时间的函数必须和函数-CONSTANT()一起使用。

在这个CONSTANT语句中的一个常数表达式代表象CURRENT这样的函数,它的值依赖于当
前的时间。这样的函数必须写成-CONSTNAT()函数的参数,返回编译的时间做为它们的
值。(不能在一个常数值中使用运行的时间。)

-4120        对于一个模块,变量"name"可以说明是局部的也可以是外部的,但不能同为
两者。

指定的变量被说明或定义了超过一次。那些说明中至少有一个带有EXTERNAL,并且另
一个定义是一个模块变量(缺少EXTERNAL或GLOBAL)。回顾名称的说明和定义,想着它
们中的一些可能是在包含文件中。如果你期待名称象一个变量私有于这个模块,给它
一个唯一的名称。(允许声明一个变量为EXTERNAL超过一次,并且允许声明它为
EXTERNAL然后定义它为GLOBAL。这二者都能作为包含header的结果产生;并且它们有
好定义的意思。但是一个变量对模块既是外部的又是局部的是冲突的。)

-4121        不能通过一个CALL语句或在一个函数调用表达式中调用报表。

这个语句试图象调用一个函数一样调用一个报表。虽然一个报表具有一个函数定义的
一般格式,但它不能象一个函数那样使用。检查在这个语句中调用的函数名;其中一
个是报表。如果你的意思是发送一行数据到报表,使用OUTPUT TO 
REPORT语句。

-4122        分析器限制被超越。尝试减小模块的复杂度或大小。

分析器返回一个NOT句法错误的错误。这可能由于一个分析器的堆栈溢出引起 (太多层
的IF,WHILE嵌套,或类似的) 或分析器运行超出分析器的堆栈空间(模块太大)。尝试
通过拆分复杂函数成多个函数或拆分模块成多个模块以降低代码的复杂度。

-4123        对函数"name"的调用必须有一个RETURNING子句。

函数名称被说明为返回一个结果,所以CALL语句必须提供一个RETURNING子句以接受
结果。

-4125        没有在类分层"name"中定义或说明为一个成员。

指定的元素没有说明,或说明而未定义,为类分层"name"的一个成员。

-4126        期待句柄。

HANDLE语句WITH子句前的标识符没有标识一个句柄。如果句柄的标识符指定一个类,
检查确定句柄被说明为属于那个类;否则,检查确定它被说明属于目标对象说明的
类。

-4127        期待事件。

HANDLE语句WITH子句前的标识符没有标识一个事件。事件必须在说明目标对象的类中
说明或从中继承。

-4128        句柄应该是与对象同一个类,或是其基类的成员。

指定的句柄在程序中说明,但不是与对象同一个类或派生出对象的基类的一个成员,

-4129        期待对象名。

在HANDLE语句中,句柄有一个"name."前缀限定符,但是那个名称是一个未知的对
象。

-4130        句柄不能直接调用。

一个句柄不能是一个显式的CALL语句的对象。调用一个句柄的唯一途径是通过调用或
posting句柄已经被一个HANDLE语句赋值的事件。

-4131        这个非共享的函数调用没有隐含对象。("SELF"在这个上下文中没有定义)。

在这个成员函数调用中没有对象参考的支持。如果这个成员函数的调用是在成员函数
的内部,"self"将是隐含的对象参考。这个调用产生于一个非成员函数体中,所以没
有隐含的对象参考。

-4132        在bass子句中非法的基类名称。

程序说明了一个基类,并且说明了一个其它的类DERIVED FROM那个基类。在派生类的
构造符的定义中,一个基构造符子句指定了一个NOT基类构造符的函数的调用。假设有
一个派生类称为"bread"和一个基类称为"food";如果loaf构造符应该有开始
FUNCTION bread::bread(args1):food(args1)的定义。如果它开始FUNCTION 
bread::bread(args1):beverage(args1),这个错误信息就会出现。

-4133        只有事件可以被传递。

一个POST语句指定了事件以外的东西。成员函数,句柄,和报表不能被传递。

-4134        类限定在调用一个事件时不允许。

程序指定类了一个跟着一个作用域限定符(:)的类名并且这个名称是一个事件。用恰
当的对象名替换这个类名。

-4135        只有共享的类变量能在类的说明之外定义。

一个描述为SHARED的类变量不能在类的说明之外定义。所指定的变量定义是一个在一
个类的说明中没有使用一个SHARED限制符描述的一个变量的完整的定义。

-4136        内部函数<名称>()有错误标记。

一个!copy()函数的正确标记是FUNCTION !copy(obj this_class),带有一个类型相当
于类的对象的参数。一个!derive()函数正确标记的没有参数,只有一对括号。

-4137        嵌入的C代码只允许在编译的4GL程序中。

一个BEGIN_C和END_C块只能包含于编译的-NewEra 程序中。它在一个解释的
(p-dode)-NewEra程序中是无效的。

-4138        CHAR(*)的数组是不允许的。

ARRAY [ ] OF CHAR(*)不是一个合法的类型。

-4139        常数"name"不能用于它自己的定义。

一个常数在定义之前不能使用。因此,一个常数不能用于它自己的定义。

-4140        编译程序不能继续。

这个错误在一个不可恢复的错误发生在编译程序(即:SEG VIO, BUS ERROR)中时输
出。这种情况可能发生在用户明确地终止编译时。否则,如果这个错误又发生,请记录全部环境并与Informix 技术支持部联系。

-4141        未知的4GL编译标志"name"将被忽略。

这个错误在用户直接调用NewEra产品的元素,而不通过标准接口时产生。可运行fgle
或fglp被传递了一个不理解的编译开关。

-4142        WHENEVER语句中调用的函数不能要求参数。

程序中WHENEVER语句有WHENEVER条件CALL函数的格式,并且被调用的函数被说明为有
一个参数。在这样的条件下的函数调用甚至不能有括号,使用单独的参数。注意main
有隐含的参数,所以它不能用于这种形式的WHENEVER语句。

-4143        WHENEVER语句中调用的函数不能返回值。

程序中WHENEVER语句有WHENEVER条件CALL函数的格式,并且被调用的函数被说明为有
一个RETURNING子句。在这样的条件下的函数调用不能返回任何值。

-4144        在一个INCLUDEd文件中发现一个语法错误。这个结构在上下文中是不能理解
的。

这是一个一般性信息,它表示不能分析一个被INCLUDE语句引入的文件中的NewEra
语句。在错误产生的地方开始,并在程序中向后寻找其它的错误信息和遗漏的标点,
遗漏的END语句,和其它的错误。通常,一个遗漏的END IF是最大的可能。如果这个
错误的原因是不明显的,集中消灭其它的错误,更多数的错误信息和这个将可能也
消失。

-4145        太多错误,编译器将退出。

侦测到太多编译错误。编译器报告在这点发现这个错误并退出。

-4146        指定了太多的输入文件。

可运行的fgle和fglp只允许一个输入文件。

-4147        这个函数中要求一个RETURN语句。

函数说明为有一个指定为非VOID的RETURNING子句,但没有RETUEN语句出现在函数
体中。

-4148        CHAR(*)类型不允许在SQL语句中。

CHAR(*)类型不允许作一个SQL类型。它不能用于CREATE TABLE, ALTER TABLE等。

-4149        这种类型的表达式在SQL语句中不允许。

一个在SQL语句中提到的标识符是一个象-FOREIGN这样的类型,或它命名了一个对象(
一个类的一个成员)或一个记录。

-4150        第一个参数必须是一个ixRow 对象。

调用内置函数packrow()和unpackrow(),第一个参数必须是ixRow类型。

-4151        构造符不能直接调用。

一个构造符不能使用CALL语句直接调用或在一个函数调用中作为一个函数。构造符应
该使用NEW操作符间接调用。

-4152        THROUGH表达式的非法的开始或结束名称。

在一个SQL语句中的一个THROUGH表达式中使用了非法的表达式。

-4153        警告:带有USING子句的常数表达式在编译时基于环境变量的值被求值。

这个警告在一个CONSTANT的一个值包含一个USING子句时产生。环境变量DBFORMAT
和DBMONEY的设置能影响USING操作的结果。这个警告提醒用户在CONSTANT语句中的
USING子句将在编译时被求值并且可能和其它USING子句在运行时求的值不一致。

-4154        一个CHAR或-VARCHAR类型的常数所允许的最大值是255。

在一个CONSTANT说明或定义中,一个字符类型常数的大小不能超越255。

-4155        警告:只有静态游标允许在WHERE -CURRENT OF 子句中。游标名将被处理为
一个静态游标名。

在UPDATE和DELETE语句中,WHERE CURRENT OF cursor-name子句不能引用一个已经被
说明为动态的游标名。

-4156        警告:循环计数可能溢出。

这个警告在一个FOR循环的上限在那个类型的最大值的STEP值之内时产生。作为一个
例子,假设FOR语句试图运行IX从1到32760带有一个步长值为20,并且IX说明为
SMALLINT;编译器将产生这个警告,因为IX将溢出-没有恰当的循环终值。

-4157        语句太复杂。将其简单化。

这个错误在编译过程中侦测到一个堆栈溢出时产生。在Windows中,堆栈的大小是有限
的。试着降低代码的复杂度。复杂的表达式,如太多的串连接('||'),会消费大量的
堆栈。

-4158        -INFORMIX-4GL FORM和WINDOW语句在这个产品中不支持。对屏幕相互作用使
用Visual Class Library。


编译器遇到一个OPEN FORM或OPEN WINDOW语句。在-NewEra中,这些功能是通过
Visual Class Library处理的。咨询Graphical and Connectivity Reference
Manual。其它的语法错误可能是这个错误附加产生的。替换和VCL调用冲突的语句并重
编译可以消除这些附加的错误。

-4159        下标不支持表达式因为它不是一个字符或数组参考。

这个表达式不能被一个下标限定因为这个表达式既不是一个ARRAY类型也不是CHAR()
类型。

-4160        这个表达式不能用做赋值语句的源。

检测到一个不合法的赋值。例如,abc被说明为一个常数,但你试图赋给它一个值。一
些语句会介入赋值:LET, SELECT ... INTO, OPEN CURSOR ... INTO,
FETCH INTO, FOREACH ... INTO, FOR 重复符(被赋值的重复符), INITIALIZE,
和LOCATE。

这个错误只被NewEra返回。

-4161        这个变量没有被定义为一个记录或对象。

所示的变量和一个星号,或和THRU或THROUGH关键字共同使用。而它尚未定义为一个
记录或对象。检查名称的拼写。如果它是你所要的,定位变量定义找出为什么它没有
象期待的那样定义。这个错误只被NewEra返回。

-4162        在报表中不能返回值。

一个报表不能包含一个RETURN语句因为那将使控制返回调用报表的过程。

-4163        类"class"的内部函数"name"不能被直接调用。

classname::classname()这种格式的构造符,是通过NEW操作符调用的。
classname::!copy()是通过COPY操作符调用的。classname::!derive()是通过NEW
和COPY操作符AS的子句调用的。这个错误只被NewEra返回。

-4164        赋值语句中使用的变量类型太复杂。

这种类型的变量不能用于一个赋值。也就是说,不能对一个BYTE或TEXT变量赋一个值(
除非是无值的NULL)。不能对一个数组变量赋任何值。

-4300        语句中包含太多级的函数调用嵌套。

这个语句调用了嵌套于其它函数调用的参数列表中的函数,并超越了四级。最大级的
支持是四,如以下表达式:Afun(2-Bfun(3+Cfun(4*Dfun(5))))。
重写表达式将最内层的函数调用存储于一个变量中,并在表达式中使用这个变量。

-4309        打印不能在包含与报表headers或尾部的一个循环或CASE语句中完成。

4GL需要知道页的headers和尾部需要多少行空间;否则它无法知道一页允许多少明细
行。既然它不能预测一个循环将要执行多少次,或者一个CASE的哪个分支将被执行,
它禁止在与FIRST PAGE HEADER,PAGE HEADER,和PAGE TRAILER节有关的上下文中使
用PRINT语句。必须重整理代码将PRINT语句放在总被执行的地方。

 
阅读(586) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~