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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-03-21 00:06:28

作者:oldbank  出处:
-436        当 time-out 值大于等于零时,回调函数必须被定义。

你没有对你的 time-out 值提供一个回调函数。确认你既提供了 time-out 值也提供
了一个回调函数。

-437        连接必须建立在登记回调函数之前。

在连接到一个数据库服务器之前,试图登记回调函数。首先必须连接到一个数据库服
务器,然后登记回调。

-438        如果 time-out 值是-1,回调函数必须是NULL。

对撤消回调函数提供了一个非法值。给该回调函数传递一个 null 值,而不是一个函
数指针。

-439        数据库服务器当前正在处理一个 SQL 任务。

你试图在一个信号处理函数/例程或一个回调 函数/例程内调用一个 SQL 程序,或试
图执行一个SQL语句。只能使用你的 INFORMIX-ESQL/C 回调函数内部的 
sqldone() 和 sqlbreak() 函数库函数。只能使用你的 ESQL/COBOL 回调过程内部的
ECO-SQD 和 ECO-SQB函数库程序。另外,如果你要在INFORMIX-ESQL/C中不寄存你的回
调函数,你可以在你的回调过程中调用 sqlbreakcallback()回调登记函数。如果你要
在 ESQL/COBOL 中不寄存你的回调过程,你可以在你的回调过程中调用 ECO-SQBCB 回
调寄存程序。

-450        不合法的 ESQL 定位器,或4GL中未初始化的 blob 变量。

在这个语句中使用的一个 BYTE 或 TEXT主机变量是无效的。如果这是一个 4GL 
程序,该变量没有用 LOCATE 语句初始化,或者定位后被释放。检查程序逻辑,确认
全部的 blob 变量在使用前是定位的。如果这是 ESQL/C,则定位器结构是无效的或未
初始化的。检查全部定位器结构在使用前已分配空间并且已赋值。

-451        定位器缓冲区太小。

定位器结构为一个BYTE 或 TEXT提供值,在这个语句中指定一个内存缓冲区小于该
值(在 loc_bufsize 显示字段中)。实际的大小是在 loc_indicator 中。没有数据被
转换。修改程序使用一个较大的缓冲区,在一个文件中定位该值来代替内存,或在程
序段通过一个用户提供的读取函数传递该值。另外,你可以在 SELECT语句指定一个
值的子串。如果这是一个4GL程序,这个错误不应出现。如果该错误再出现,请记下
全部细节并与Informix 技术支持部联系。

-452        'loc_open()' 失败。

loc_open()函数在定位器结构提供的一个BYTE 或TEXT值,在这个语句中被调用并返回
一个负的返回代码。当该值用用户提供的函数( loc_loctype 包含 LOCUSER)定位时,
这个函数是程序的部分并且你不得不自己诊断它的问题。当该值在一个文件
(loc_loctype 包含 LOCFILE,或在一个4GL程序,该变量已被定位在一个文件)被定位
时,这个错误表示系统提供的loc_open()函数不能打开该文件。可能的原因包括: 
该文件不存在;你没有对该文件的读取许可;打开文件太多。

-453        'loc_close()' 失败。

loc_close()函数在定位器结构提供的一个BYTE 或TEXT值,在这个语句中被调用并返
回一个负的返回代码。当该值用用户提供的函数(loc_loctype 包含 LOCUSER)
定位时,这个函数是程序的部分并且你不得不自己诊断它的问题。当该值在一个文件
(loc_loctype 包含 LOCFILE,或在一个4GL程序,该变量已被定位在一个文件)被定位
时,这个错误表示系统提供的 loc_close() 函数不能关闭该文件。

-454        'loc_read()' 失败。

loc_read()函数在定位器结构提供的一个BYTE 或TEXT值,在这个语句中被调用并返回
一个负的返回代码。当该值用用户提供的函数(loc_loctype 包含 LOCUSER)
定位时,这个函数是程序的部分并且你不得不自己诊断它的问题。当该值在一个文件
(loc_loctype 包含 LOCFILE,或在一个4GL程序,该变量已被定位在一个文件)被定位
时,这个错误表示系统提供的 loc_read() 函数不能从该文件读取。

-455        'loc_write()' 失败。

loc_write() 函数在定位器结构提供的一个BYTE 或 TEXT 值,在这个语句中被调用并
返回一个负的返回代码。当该值用用户提供的函数(loc_loctype 包含 LOCUSER)
定位时,这个函数是程序的部分并且你不得不自己诊断它的问题。当该值在
一个文件(loc_loctype 包含 LOCFILE,或在一个4GL程序,该变量已被定位在一个文
件)被定位时,这个错误表示系统提供的 loc_write() 函数不能写到该文件。可能的
原因包括: 磁盘是满的,你没有对该磁盘的写许可;发生了一个硬件错误。

-456        指示器值不能适合宿主变量。

这个内部错误给出在数据库服务器和调用它的库函数之间通讯的问题。检查你的程序
与使用的数据库服务器在相同的软件级。如果该错误再出现,请记下全部细节并与 
Informix 技术支持部联系。

-457        数据库服务器意外终止。

你的应用程序正在工作的数据库服务器进程或线索已经终止。DBA 可能关闭该系统。
后面的大多数的可能原因是一个内部错误。寻找操作系统信息可以得到更多的信息。
如果该错误再出现,请记下全部细节并与 Informix 技术支持部联系。

检查伴随这个错误返回的 ISAM 错误代码。如果它是 -129,数据库服务器没有终止,
而只是达到当前用户会话数限制(看错误 -129的解释)

-458        长事务失败。

数据库服务器 (可能是 OnLine 或 INFORMIX-OnLine for NetWare) 用完记录这个事
务的日志空间。没有被完全记录的那个事务不能被滚回,为保护数据库完整性,操作
系统结束该事务并将它自动滚回。事务开始后的全部改变已被取消。终止该应用并重
新计划它,以便每个事务修改较少的行。另外,与 OnLine 管理员联系讨论增加逻辑
日志的数量。准备讨论修改或插入行的数量和每行的大小。

-459        INFORMIX-OnLine 被关闭。

你的应用程序使用的 OnLine 实例已被它的操作者关闭。当数据库服务器再次启动
时,你的当前事务将被自动滚回。在那个时间重新运行你的应用程序。

-460        语句长度超出最大值。

在这个 PREPARE, DECLARE, 或 EXECUTE  IMMEDIATE 语句中,语句文本长于数据库服
务器可以处理的长度。对于不同的设备,实际的限制是不同的,但总是放宽的,
多数情况最多为32,000字符。检查程序逻辑,确认某个错误不会使它提供一个比预期
长度要长的串(例如,在内存中覆盖 null 串结束符字节)。如果文本有预期长度,
修改程序使其每次提供较少的语句。

-461        打开文件错误。

这个语句在一个文件和一个BYTE 或 TEXT字段之间转换值。由于定位器结构显示字段 
loc_loctype 被设置到LOCFNAME,数据库服务器试图用 loc_fname中的路径名和 
loc_oflags中的标志打开该文件。返回一个操作系统错误。检查伴随的 ISAM 错误代
码以获得更多的信息,并寻找操作系统信息。典型的原因包括缺少磁盘空间,文件许
可问题,以及打开文件的个数限制。

-462        文件关闭错误。

这个语句从一个 BYTE 或 TEXT 字段读取一个值到一个文件。数据库服务器将该数据
复制到那个文件,但是,当数据库服务器关闭该文件时,得到一个操作系统错误。检
查伴随的 ISAM错误代码以获得更多的信息,并寻找操作系统信息。典型的原因包括缺
少磁盘空间和硬件错误。

-463        读取文件错误。

这个语句从一个文件将一个值写到一个 BYTE 或 TEXT 字段。当读取该文件时,数据
库服务器得到一个操作系统错误。检查伴随的 ISAM 错误代码以获得更多的信息,并
寻找操作系统信息。

-464        写文件错误。

这个语句从一个 BYTE 或 TEXT 字段读取一个值到一个文件。当写该数据时,数据库
服务器得到一个操作系统错误。检查伴随的 ISAM错误代码以获得更多的信息,并寻找
操作系统信息。典型的原因包括缺少磁盘空间和硬件错误。

-465        没有更多的内存给定位器缓冲区。

这个查询返回一个位于内存的 BYTE 或 TEXT值,并且定位器结构(在 loc_bufsize 
设置-1)请求数据库服务器分配内存。不可能为缓冲区得到必要的内存。如果你能用
操作系统方法为你的程序分配更多的数据空间内存,则照此处理并再次运行它。除此
以外,你可以在一个文件中定位值,或用一个子串选择一部分值。如果这是一个4GL
程序,则该错误不应出现。在DOS系统,退出到操作系统命令行,释放一些磁盘空
间,并重新提交你的程序。如果该错误再出现,请记下全部细节并与Informix技术支
持部联系。

-466        文件长度错误。

这个语句从一个文件将一个值存储在一个 BYTE 或 TEXT 字段。定位器结构在 
loc_locsize 为该数据制定一个长度,但是,数据库服务器在读取足够数据之前发现
文件结束。检查程序,确认输入文件的定位是合适的,并指定了正确的长度。如果该
文件应该读取到它的结束,指定一个-1的长度。如果这是一个4GL程序,则这个错误不
应该出现。如果该错误再出现,请记下全部细节并与Informix技术支持部联系。

-467        指示器对象遗漏。

这个程序用 -icheck标志编译,且当前的SQL语句返回一个截段的或null值,对这个值
将正常地设置一个指示器,然而,没有指示器变量指定到一个宿主变量。修改程序使
用指示器变量。

-468        不能从系统获得用户id: 不能开始数据库服务器。

你的应用正试图打开与一个数据库服务器的通讯。作为该操作的一部分,必须从系统
口令文件读取你的用户id,但这个工作失败了。参考操作系统错误信息,可以获得更
多的指导信息。与系统管理员商量,确认用户id的文件对全部用户是可读的。

-469        本描述符不存在。

指定的系统描述符区域的名字在系统描述符区域列表中不存在,所以它没有被分配。
必须先执行ALLOCATE DEscriptOR 语句分配好描述符的名字,然后才能使用它。

-470        出现的值必须大于零。

如果在 ALLOCATE DEscriptOR 语句中包含 WITHMAX <出现>子句,则必须指定一个
大于零的<出现>的值。改变<出现>的值成正的整数,并再次执行ALLOCATE
DEscriptOR语句。
 
阅读(783) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~