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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-20 22:11:27

作者:oldbank  出处:
-8061        该报表有一个READ语句,但未指定ASCII记录定义。

想用READ语句,你必须在DEFINE节使用ASCII语句定义ASCII文件中期望的显示字段。

-8062        该报表包含一句SELECT语句,但应改用READ语句,因ASCII记录定义已被指
定。

报表可能基于一个ASCII文件或数据库行,但不是二者同时。DEFINE节的ASCII语句说
明将使用输入文件,而且READ语句用来读该文件。如你想使报表基于数据库行,保留
SELECT语句,删去ASCII。

-8102        ORDER BY命令中指定的单一字段只能有一句AFTER或BEFORE GROUP OF子句。

报表中的某一字段包含不只一句AFTER GROUP OF或BEFORE GROUP OF子句。只有其中之
一可以命名一个给定字段。然而,你可以把语句合并,使多个子句合并为单一子句。

-8103        为使BEFORE或AFTER GROUP OF子句能正确执行,子句中指定的字段必须已在
ORDER BY命令中作为排序字段指定过。如果排序字段有下标,BEFORE和AFTER GROUP
OF子句中的字段也应如此。

确保在ORDER BY语句和GROUP OF子句中指定的控制字段要相同。

-8104        组聚合只能用在AFTER GROUP OF子句中。

当一个组的行被处理时,该组上的聚合值被积累,所以聚合的值只有在组尾才可用。
因此除在AFRER GROUP OF子句中,报表不能引用它。

-8105        聚合不能使用在另一个聚合中。一个聚合不能使用在另外的聚合的WHERE子句
中。

聚合函数不能嵌套使用。主要因为外部聚合被积累时内部聚合的值不确定。改写聚合
表达式,只引用字段和字段的简单表达式。在AFTER GROUP OF子句中你可以将某几行(
作为一组)的聚合值存在一个变量中,然后就可以用于下一个组上的聚合运算。

-8107        用户变量或参数被定义了多次。

DEFINE节中一个名字只能定义一次,你在ASCII,RARAM或VARIABLE语句中将某个
名字用了不止一次。

-8108        用户变量或参数的长度必须大于零。

确定DEFINE节的每个CHAR和VARCHAR显示字段都有非零的长度说明。

-8109        PAGE HEADERS和TRAILERS中不能用字自动换行。

ACEPREP需要知道header和trailer部分有多少行(否则它将不清楚每页具体会有多少
行)。然而,用WORDWRAP函数打印会使行数成为一个动态变量,依赖于字数,因此不
能用。

-8110        用户变量名<名字>还未被定义。

名为<名字>的变量,参数或显示字段在DEFINE节中未定义。如<名字>拼写正确,它必
须先被定义。

-8111        ORDER BY语句中不允许有用户变量和运行时参数。

只有字段名可以用在ORDER BY子句中。检查子句中的字段名或显示标签拼写。你不能
根据被定义的变量,参数或者ASCII显示字段进行排序。

-8112        在header或trailer子句中,IF-THEN-ELSE语句中的IF部分中的打印行数必须
和ELSE部分中的打印行数相同。

ACEPREP需要知道header和trailer部分将占多少行(否则它将不清楚一页具体会有多
少行)。由于无法确定IF语句将执行哪一部分,所以要求两部分有相同的输出行数。

-8113        任何header或trailer子句中不能出现SKIP TO TOP OF PAGE。

SKIP TO TOP OF PAGE被执行之后,执行trailer子句(显示固定的page-end
material)之后必须紧接着执行header子句。如果在header或trailer子句有该语句,
将发生死循环。

-8114        页的头尾的行数加上页眉,页脚所需行数超出了或等于页的长度。

检查OUTPUT节和所有HEADER和TRAILER字段中的语句。这些语句用的所有行数必须远小
于指定页长,从而可以打印有用的内容。

-8115        ORDER BY命令中不能有8个以上待排序字段。

ACEGO限定被排序的字段数。你必须减少ORDER BY后所列的字段数。

-8116        ORDER BY命令中有非法下标。

你只能对一个字符显示字段加下标。检查下标。里面不应该有负数,下标数必须在字
符字段长度之内;且第一个数要小于等于第二个数。

-8121        指定的WORDWRAP RIGHT MARGIN值超出限定范围.它必须大于或等于当前列,
小于等于报表的右边界值。

WORDWRAP子句的右边界值用来设置一个比整个报表的右边界略窄的边界。WORDWRAP显
示的有效左边界是处理WORDWRAP时的当前列。右边界必须在当前列和报表的右边界之
间。

-8122        在PAGE HEADER或PAGE TRAILER子句中不允许用NEED n LINES。

一页的头部和尾部的大小是在PRINT语句中建立的。想把页弄得大一些,使用不带参数
的PRINT语句。

-8123        在FIRST PAGE HEADER,PAGE HEADER或PAGE TRAILER子句中不允许有
PRINT FILE命令。

ACEPREP需要知道头尾部分需要多少行(否则它不知道每页具体该放多少行)。因为编
译报表时无法预言文件的大小,所以不允许有PRINT FILE命令。你需要用PRINT
语句生成该数据。

-8124        上述查询中的一个用户变量在DEFINE节中未定义。

SELECT语句中命名的一个变量在报表的DEFINE节未定义。检查SELECT中的所有名字是
否都是你所要,确认没有拼错的字段或变量名。

-8125        SELECT节有不止一个END关键字。在SELECT节内部,用分号分隔SQL语句。只
在SELECT的最后用END关键字。

请查看SELECT节,确认所有SELECT语句中除最后一句都有分号,且最后一句紧跟END
语句。也许你在该部分开始时少了FORMAT语句。

-8126        PARAM[0]不能被定义。

在PARAMETER语句中定义的第一个参数是1号。在一些主机操作系统中,0号参数事先
设置为程序名,但在报表中不能使用这个值。

-8127        报表说明中不能用多个REPORT TO语句。

整个报表只能指向一个目标文件,它在OUTPUT节REPORT TO语句中指定.。一个报表不
能被分到几个目标文件中,所以只保留第一个REPORT TO语句,其它删去。如果你想对
几组数据产生各自的报表文件,那可按下面中的某条去作:

*     为每套数据写一个单独的报表。(报表说明只在SELECT语句中有所不同)
*     产生一个完整的报表,将每套数据分到不同页,以后用操作系统实用工具将其
分离成为不同的文件。
*     在SELECT语句中用参变量,这样在运行报表时你可以动态地选择数据子集合,
也用REPORT TO PRINT语句,这样你可以通过在开始报表前设置DBPRINT变量,达到
控制输出到某个目标文件的目的。

-8128        VARCHAR变量最小长度必须比最大长度小。

VARCHAR变量由两个数定义:<变量名>(n,r),n是变量的最大长度,r是保留长度。尽
管报表变量也允许如此定义,保留长度只在数据库表定义的上下文中才有意义。如果
你指定它,必须使它小于或等于n。

-8129        对于缺省报表,指定的页长<长度>太短。

指定的行数作为报表的页长不合适。增加每页的行数或修改报表说明,使它具有较少
行数。例如修改头或尾的边界行数。

-8130        一个INTEGER类型的常量不能比2147483647大。

该语句指明整数的最大允许值。改用一个较小的值或换一种数据类型,例如DECIMAL
类型。 

 
-9001        只有CHARACTER类型字段才可以加下标,或者在打印时后面不用跟空格。

你对一个非字符型变量,或是想加下标,或是想对它用CLIPPED函数;或者错误地指定
了该变量的类型。

-9002        在PMIM中发现未知操作码。

发生ACEGO内部错误。检查ACEPREP编译器版本同ACEGO版本是否一致。若一致,
重新编译报表以确信.arc文件未被损坏。如错误仍发生,请记录所有情况并与
Informix 的技术支持部门联系。

-9003        USING格式串只能包含一个'.'

确定某数的显示的格式串包含了一个以上的小数点。参照参考手册中的USING函数的说
明,去掉多余的小数点。

-9004        字段<名字>不在当前表中,或用户变量<名字>未被定义。

所显示的名字与数据表中的字段或定义的变量毫无联系。检查它的拼写是否正确。如
果你把它当变量,在DEFINE部分添上它的定义。如果你把它当数据字段,则检查表是
否被改过或它的字段已被更名。

-9014        用法: SACEGO [-q][-d <数据库>] <报表名>

标志:
-q        SACEGO 将不打印任何错误或消息。
-d        SACEGO 将使用-d选项指定的数据库名,以取代报表的DATABASE节中指定的数
据库名。
当没有给ACEGO合适的命令行参数时,该信息将出现。可能有另外的信息告诉你是怎么
回事。有时候,你可以使用手册中描述的-s选项代替-q;它们是等效的。

-9025        字段<名字>不在当前表中。任何被用作ORDER BY字段的字段必须在当前表中。

显示的字段名出现在ORDER BY之后,但它不是某字段的名字或该语句所选表达式的显
示标签。

-9046        报表输出文件<文件名>打不开。可能是由于权限问题。

报表通过REPORT TO语句或DBPRINT环境变量内容将报表指向所说的目标文件。请查明
目标文件拼写正确。请查明你的帐号在此操作系统下有写的权限,且目标盘可写,且
没有满。

-9047        输出文件<文件名>无法建立。

可能的原因有:那个目录你没有写的权限;磁盘空间已满;或你对它的操作超越了所打开
文件个数的允许权限。

-9048        管道<管道说明>不能打开。

报表被定向到REPORT TO语句说明的管道。请查明所有语句中的的程序名拼写都正确;
程序都存在;且都在当前执行路径下。参看操作系统的出错信息,该信息可能会指示出
错原因,例如,给出系统内存不够的信息。

-9049        命令行中的输入参数不能被转换成为所需数据类型<类型>。

命令行的值在DEFINE部分PARAMETER语句中被定义为数据类型的<类型>。但命令行实际
给定的值不能转换成该种类型。请检查以下几点是否满足:
*     <类型>是数值类型,则应当作为一个数读入。
*     <类型>是MONEY,则参数不应带有货币符号。
*     <类型>是CHARACTER或VARCHAR,则参数不能超过所定义变量长度。
*     <类型>是DATETIME,则参数要用标点正确分隔(参照用户指南中的DATETIME
和INTERVAL相关附录部分)。
*      <类型>是DATE,则输入数据应是用标点正确分隔的。
      注意  标点分隔正确的DATE,DATETIME,INTERVAL值,包含对操作系统可能有
特殊含义的字符。因此,问题可能是虽然参数正确但需要引号将其引起来。

-9050        用户变量<名字>是<类型>类型的。输入值越界或无法转换为那种类型。

PROMPT语句提示用户输入值,该值被存入所示类型的变量名。但是,输入值却不能被
转换为该变量的数据类型(参看-9049错误对转换的论述)。重新运行报表,输入正确数
据(也可以考虑修改提示串以便更好地引导用户)。

-9051        ACE程序定义的参数数目与命令行中传给ACEGO的实际参数数目不等。

DEFINE部分中用PARAMETER语句定义的参数数目和命令行中的实际参数数目不一致。检
查包含有空格或其它特殊字符的参数是否加了引号。缺少引号会使单个参数变为多个
参数。

-9052        格式串太大。它不能大于79个字符。

USING函数的格式串有大小限制。

-9053        发现.ace文件中有一个未知入口。用SACEPREP重新编译报表,用SACEGO
重新运行它。注意SACEPREP和SACEGO版本一致。

ACEPREP和ACEGO版本必须一致。(为检查程序版本,在命令行加-V选项运行它)。用编
译器ACEPREP重新编译报表,其版本必须和ACEGO版本一致。如已达上述要求,仍请
重新编译报表,以确认.ace文件未被损坏。如错误仍发生,记录所有情况并与
Informix 技术支持部门联系。

-9054        ACE报表被A版本编译器编译。本运行器只能运行版本5到 B。用SACEPREP重新
编译ACE报表说明,然后重新运行SACEGO。

ACEPREP和ACEGO版本必须一致。(为检查程序的版本,在命令行用-V选项运行它)。用
ACEPREP编译器重新编译报表,其版本要和运行器ACEGO版本一致。如已达到该要求,
仍请重新编译报表,以确认.ace文件未被损坏。如果错误仍发生,记录所有现场消
息,并和Informix 技术支持部门联系。

-9055        编译过的报表文件<文件名>找不着或打不开。

报表<文件名>在ACEGO命令行命名。它应能在当前目录或DBPATH环境变量命名的某路径
把文件"<文件名>.arc"定位,但现在既找不到也不能为读取而打开。检查文件名拼写
是否正确,你的帐户是否有权读取它。

-9059        对于ACE报表,选择语句如果不是最后一条选择语句,它必须选择进入某临时
表。

报表中的SELECT部分可能包含不止一条SELECT语句。然而只有最后一句才产生作为报
表内容的行。前面的语句都为临时表准备数据,最后传给报表。修改报表说明,使除
最后的SELECT语句外的所有SELECT语句都包含INTO TEMP子句。

-9060        <名字>的下标m和n值越界,不符合字段定义的长度

ORDER BY子句中的字段子串不对。当取某字段的子串时,括号中的第一个数指明初始
字符位置,第二个数指明终止字符位置。两个数都至少是1,且都不大于字段或变量长
度。

-9061        'SELECT INTO'语句不能作为ACE报表执行的最后一条选择语句。

报表中可能包含不止一条SELECT语句。最后一句必须产生作为报表内容的行。前面的
SELECT语句用来在临时表格中准备数据,最后的语句将这些传给报表。修改报表说明
使除最后一句SELECT语句的所有SELECT语句都包含INTO TEMP子句。

-9062        在数值向CHARACTER类型用户变量转换时发生错误。CHARACTER类型变量
太短,无法保存结果。

数值向字符转换过程中产生了太多的数值字符,使目标变量无法保持原值。ACEGO
没有截断原值,而是产生错误而停止。你可以重新定义目标变量,或限定转换值的大
小,例如用USING格式字串。

-9063        在ACE中DEFINE语句中有用户定义的函数名<名字>,但在用户的C静态数据区
中的用户定义函数表里却找不到该函数名。

报表中DEFINE部分包含一个FUNCTION语句,指出某外部函数名将和报表链接起来。(外
部C函数同ACE报表和PERFORM屏的联用包括在ESQL/C手册中)。但是
每个外部函数的名字和地址必须在一个叫userfuncs的静态数组中出现。该数组和外部
函数的机器码一起,被连接到ACEGO的客户版本上。由于<名字>在数组中不出现,
ACEGO无法调用它。

检查你的ACEGO版本是否是正确的定制版本。(程序的原始版本不连接外部函数)。检查
函数名拼写是否正确。然后检查C函数来源,确认userfuncs数组定义正确,且<名字>
确有入口地址。

-9064        运行中串表满了。内存无法分配。

临时字符串可用的数据空间已满。当调用外部C函数时,或处理USING,SPACE,ASCII
内部函数时,临时串被建立。减少了这些表项的使用。

-9065        内存分配失败。

ACEGO分配内存时不能分配一行,一列或一个SQL数据结构所需的内存。所需空间与报
表说明的大小并不直接相关(正如信息文本所提示)。执行报表最多只缺几千个字节。

-9066        写输出报表时出错。

目的报表的打开是正确的,但写它的时侯操作系统提示有错。请看操作系统的出错解
释。最常见的问题是磁盘空间满。

-9067        ACE算术堆栈溢出。这里的表达式太复杂。

降低数学表达式复杂度。一种途径是将其分成几个子式,各个子式值分别用变量表
示。

-9068        一个不是SELECT语句的SQL语句出现在SELECT部分中。只有SELECT语句
或者创建临时表的SELECT语句在SELECT部分是被允许的。

可能在报表说明中SELECT单词被拼错。如果你写了UPDATE或INSERT等别的SQL语句,
删除之。在报表中只有SELECT语句是允许的。(你可以在报表调用的C函数中执行别的
SQL语句。如何将报表与C函数链接起来将在ESQL/C手册中讨论。)

-9070        ASCII输入文件中的记录包括的数据字段太多,甚至比报表中DEFINE ASCII 
所定义的还要多。

ASCII文件的一个字段是以定界符结尾的零个或者多个字符的序列(定界符在READ
语句中说明)。在一个记录中定界符与记录中的字段一样多。每个记录中的字段必须一
样多,并且每个字段必须以ASCII语句在报表的DEFINE部分定义。多余的域不被忽视。
请查找信息-9072,帮助你确定发生错误的记录。

-9071        ASCII输入文件中的记录字段比报表中DEFINE ASCII 语句中定义的少。

ASCII文件中的"字段"是以定界符结束的零个或多个字符的序列(定界符在READ语句中
说明)。事实上,每个记录中字段和定界符数目一样多。每个记录中字段数都一样多,
且每个字段必须在报表中DEFINE部分用ASCII语句定义。缺少的字段没有缺省值。察看
-9072号信息,它会帮你找到发生错误的记录。

-9072        从ASCII码输入文件中读入count个记录。

这条消息所提供的信息能帮助你定位ASCII输入文件中的问题的根源。另外一条消息所
描述的问题可以在文件的第count行上找到。
阅读(583) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~