在执行一个命令文件中的SQL语句的时候,INFORMIX-SQL 接收到一个错误返回码,或 者执行到文件的尾部却没有找到 BEGIN WORK 语句。由于事务正在进行之中(如果文件 中包含 BEGIN WORK 或者数据库是符合 ANSI 标准的),INFORMIX-SQL 将事务滚回。 (不能留下打开的事务,而且即使没有错误返回也不能假定成功。)
-854 未发现后端或后端忙。
在DOS中,应用不能与本地INFORMIX- SE引擎或INFORMIX- NET PC通讯模块建立连接。
在与SE引擎(访问本地数据库)或INFORMIX- NET PC通讯模块建立连接之前,例如要 使用DATABASE语句,必须先把它们装入。运行PSTARTSQ可装入SE引擎,而运行REMSQL 可装入INFORMIX- NET PC 通讯模块。如果已装入SE引擎或INFORMIX- NET PC通讯模块 而你仍然收到了本错误信息,那么有可能是因为别的应用目前正与SE引擎或 INFORMIX- NET PC通讯模块连接着(它们在同一时刻只能有一个连接),或者当前应 用因为一个内部错而失掉了连接。
如果是出现了内部错,你只能退出应用,然后通过DOS命令行杀死SE引擎或INFORMIX- NET PC通讯模块。杀死SE后,你应该使用不需任何选项的PSTARTSQ命令重启它。要杀 死INFORMIX- NET PC通讯模块,使用-T选项运行SETNET命令。杀死它之后,应该运行 REMSQL重启它。
当某个客户Windows应用使用了错误的.DLL文件通过网络连接数据库服务器时,也可能 出现这条错误信息。INFORMIX- NET PC 4.1版本(如4.1版的ESQL/C)上的Client Windows应用同样可在INFORMIX- NET for Windows 5.01版本上工作。查看是否有这两 种产品在同一台客户机上并行工作。如果是这样,那么确认5.01版的LDLLSQLW.DLL文 件,在PATH环境变量中的设置出现在4.1版的LDLLSQLW.DLL文件之前。另外,4.1版的 LDLLSQLW.DLL文件不应该出现在下面目录中:当前目录,MS- Windows目录。MS- Windows的SYSTEM目录,或者包含你正在运行应用的可执行文件的目录。
-855 不能取消一个未分段的表的rowid。
你试图用 ALTER TABLE . . . DROP 句法来取消一个未分段的表的rowid字段。一个未 分段的表有一个rowid字段,但它是不可取消的。
当有一个事务是活动的时候,不要使用 SET TRANSACTION 语句。在执行了 DLL 或者 DML 语句之后,一个事务成为活动的。在 BEGIN WORK 与 SET TRANSACTION 语句之间只允许有 SET EXPLAIN,SET CONSTRAINT,SET DATASKIP 等 SET 语句。
-877 隔离级已由前面的 "Set Transaction" 设置。
你的程序试图在 SET TRANSACTION 语句建立了隔离级之后对它进行重置。不要在一个 SET TRANSACTION 语句的后面使用 SET ISOLATION 语句。
-878 对一个 READ-ONLY 事务进行了无效的操作。
你在 SET TRANSACTION 语句中指定了一个 READ-ONLY 事务,然后试图变更 数据库。也就是说,READ-ONLY 保证你可以读取数据,但是你不能够变更数据。如果 你希望变更数据,你应该在 SET STATEMENT 语句中指定 READ-WRITE。如果你仅仅 希望读取数据,请改正你的程序,使之不再试图去变更数据。
-879 Trim 字符必须为 null 或者长度为1。
TRIM 函数计算出的值为 NULL。但是,TRIM 字符值表达式必须为 null 或者只包含一 个字符。你编写的程序有错误。如果 TRIM 计算出的值为 NULL,说明你的程序插入 TRIM字符值表达式的值既不是 null ,也不是单个字符。请改正该错误,程序编译, 然后重新运行你的程序。
-880 Trim 字符和 trim 来源必须都是串数据类型。
当你使用 TRIM 函数时,TRIM 字符值表达式与来源字符值表达式的数据类型发生冲 突。字符与来源的值表达式都必须是串数据类型的。请检查一下 TRIM 函数的句法, 确保字符与来源的值都是串数据类型的。