Status Codes
The status codes and messages listed here are generated by Zen components.
Status codes are not the same as numbered messages (see Messages). Messages are returned to end users by utilities or specific components and generally begin with a prefix and a number. For example: MKDE-16: There is insufficient memory to load the MicroKernel Engine.
Status codes are returned to an application calling a Zen interface. The application determines whether to display the status code to the user. Applications often display status codes in addition to helpful messages about a problem that has occurred, but the application developer determines this. Many utilities provided with Zen use transactional and relational access interfaces, and they may therefore return status codes as well as utility-specific messages.
Some messages include references to status codes.
The status codes in this documentation appear in numeric order. The following table lists the numeric ranges for each type of code.
Note:  The status codes listed here may refer to utilities, products, or platforms that are not part of your product distribution.
0
Successful Interface Completion Status Code
Any interface call can return the following status code.
0: The interface completed successfully
This status code is returned for any interface call that completes successfully. If an operation is not successful, a nonzero status code is returned.
1 to 199
MicroKernel Engine Status Codes
This section describes status codes that the MicroKernel Engine returns.
1: The operation parameter is invalid
The specified operation does not exist or is not valid.
You may receive this error if you are running a general-release version of the V8 client software against a prerelease version of the V8 database engine. If this is the case, you must uninstall your database engine and install the general release version.
You can also receive this status code if you try to create or access a local file on a client and you do not have a Workgroup engine installed or if you try to access a local file on a server and the server engine is not running.
2: The application encountered an I/O error
This status code typically indicates a corrupt file, an error while reading from or writing to the disk. One of the following has occurred:
The file is damaged, and you must recover it. See Advanced Operations Guide for more information on recovering files.
For pre-v6.0 data files, there is a large pre-image file inside a transaction, and there is not enough disk space for a write to the pre-image file.
For pre-v6.0 data files, there is one pre-image file for multiple data files. For example, if you name the data files customer.one and customer.two, both files have pre-image files named customer.pre.
For pre-v6.0 data files that are larger than 768 MB, there is a conflict among locking mechanisms. The file has not been corrupted. Your application can retry the operation until the conflict is resolved (when the competing application releases the lock your application requires).
A pre-v6.0 Btrieve engine attempted to open a v6.x or later MicroKernel file.
With Btrieve for Windows NT Server Edition v6.15.445, 32 bit Windows application may return Status 2 or “MKDE Terminated with Service Specific Error 0” after running an application for an extended period of time.
Note:  See the Actian knowledge base at the Actian website for new and updated articles on troubleshooting this status code.
3: The file is not open
The operation cannot execute because the file is not open. The application must perform a successful Open operation before the MicroKernel can process any other operations. The MicroKernel also returns this status code if the application passed an invalid position block for the file, or if the application passed a position block with a client ID other than the client ID used to open the file.
Note:  See the Actian knowledge base at the Actian website for new and updated articles on troubleshooting this status code.
4: The application cannot find the key value
The MicroKernel cannot find the specified key value in the index path.
When you receive this status code on an Update or Delete operation, it usually means that the file is damaged, and you must recreate it. Occasionally, a corrupt key can cause this status code. Drop the key, then add it again.
The MicroKernel returns this status code when an application performs a Get Equal operation to search on field type char. It is caused by a mismatch of two fields at the char level. To resolve, fill the KeyBuffer with the same fill char type as the field.
5: The record has a key field containing a duplicate key value
The MicroKernel cannot add or update a record because the record has a key field that contains a duplicate key value for an index that does not allow duplicate values. The MicroKernel also returns this status code when it cannot create an index that does not allow duplicate key values because a duplicate key value already exists.
6: The key number parameter is invalid
The value stored in the key number parameter is not valid for the file being accessed. The key number must correspond to one of the keys defined for the file. Valid key numbers are 0 through 118.
7: The key number has changed
The key number parameter changed before a Get Next, Get Next Extended, Get Previous, or Get Previous Extended operation. The operation requires the same key number parameter as the previous operation, because the MicroKernel uses positioning information relative to the previous key number.
In a related situation, the MicroKernel returns this status code when an application performs a Delete or Update operation immediately following a Get operation. If the application changes the value of the key number in the Delete or Update operation (from the value used with the preceding Get operation), the MicroKernel deletes or updates the record as requested and does not return this status code, at least not at this point. However, the MicroKernel does return this status code on the very first Get Next, Get Next Extended, Get Previous, or Get Previous Extended operation performed after the deletion or update, even if that Get operation uses the same key value the application passed to the Delete or Update operation.
If you need to change key numbers between consecutive Get Next, Get Next Extended, Get Previous, or Get Previous Extended operations (or in Delete or Update operations as described in the preceding paragraph), use a Get Position operation followed by a Get Direct/Record operation to reestablish positioning for the new index path.
8: The current positioning is invalid
You must establish the current position in order to update or delete a record. Perform a Get or Step operation to establish the current position. The MicroKernel also returns this status code if the application passed an invalid position block for the file.
9: The operation encountered the end-of-file
The MicroKernel returns this status code in the following situations:
The operation encountered an end-of-file boundary or tried to read past a file boundary (end-of-file or start-of-file).
In a Get Next Extended, Get Previous Extended, Step Next Extended, or Step Previous Extended operation, the number of records satisfying the filtering condition is less than the number of specified records to be returned, and the reject count or filter limit has not been reached.
When reading a file in ascending order according to an index path, the MicroKernel has already returned the last record in that index path. When reading a file in descending order according to an index path, the MicroKernel has already returned the first record in the index path.
When using the Get By Percentage operation, either the value supplied for the percentage is too high – it exceeds 10,000 decimal (0x2710) – or the file contains no records.
When using the Get operation using ActiveX Data Control, this error will occur only after the application is compiled and deployed. This error will not occur at design time during development. The error results from a missing MSDADC.DLL on the deployment machine. Make sure to include this file (MSDADC.DLL) in your installation script. This file is a Microsoft MDAC (Microsoft Data Access Component) file.
Note:  See the Actian knowledge base at the Actian website for new and updated articles on Btrieve ActiveX Controls.
10: The key field is not modifiable
During an Update operation, the application attempted to modify a key field that cannot be modified by definition.
11: The specified file name is invalid
The MicroKernel returns this status code in the following situations:
The specified file name does not conform to file naming conventions or the path name is invalid. Make sure the file name or path name is valid for the environment.
The specified combined path and file name in a non-English language is greater than 260 bytes when converted to UTF-8. The workaround is to shorten the path or file name or replace non-English characters with English ones.
If you are operating in the client-server environment:
The application attempted to open a file that has .^^^ as its extension. This extension is reserved for the MicroKernel to use during continuous operation.
The data buffer for a Begin or End continuous operation is not set up correctly.
You attempted to load a remote file when your client configuration settings for Local MicroKernel Engine and Use Remote MicroKernel Engine are incorrectly set to On and Off, respectively. To resolve this condition, at the client workstation, open Zen Control Center. Under the Access properties category for MicroKernel Router, set Use Remote MicroKernel Engine to On. For more information, see To set the properties in ZenCC for a local client in Advanced Operations Guide.
You attempted to open a local file with a Workgroup engine that is not the designated gateway engine for the file. Go to the directory where the file you attempted to open resides. Check to see if the ~PVSW~.LOC file in that directory is flagged read-only. If it is, change it to read-write.
If you are using the dynamic locator file with your Workgroup engine:
Make sure the name of the second-level locator file specified in your first-level locator file does not have the same name as an existing directory. Also, make sure they are all on the same drive.
Make sure the second-level locator file specified in your first-level locator file can be accessed by the engine.
Make sure all the Workgroup engines sharing the dynamic locator feature have the exact same drive mapping to the server location where the data files reside.
If you are accessing files on a DOS client:
A NET START FULL for the Windows for Workgroups workstation was not used when it was booted into DOS. Use a NET START FULL to get a full redirector in the DOS client mode. BREQNT.EXE requires a full redirection. At the DOS prompt type net ver and press Enter. Here is the list of required components for a DOS workstation to connect to a Windows server:
LSL.COM LAN Card Driver
IPXODI.COM
IFSHLP.SYS
NET START FULL

These can be loaded high, using emm386. NET START FULL will load in upper memory.
You attempted to open a file with a long file name on NSS volumes. The MicroKernel queries the volumes using operating system calls and then loads the appropriate drivers for the associated name spaces it find for the volumes. In this case, the MicroKernel was being loaded before mounting the volumes so it did not find the requirement for long file name support by the NSS volumes.
Issue the MGRstart or Bstart command after loading the volumes. An example would be:
LOAD NSS
MOUNT ALL
SYS:ETC\INITSYS.NCF
MGRSTART or BSTART
The embedded spaces configuration setting is turned on. “On” is the default starting with PSQL v9. Change the setting to off if your applications do not allow embedded spaces in file names.
If you are working in the Microsoft Remote Desktop Services (formerly Terminal Server) environment:
Approximately 5 users can work in a Windows application on 2 different terminal servers that are connected to a primary Windows server. If you have attempted to run on top of this limit, you will receive status codes 11 and 35. For the recovery solution for this instance, see Microsoft Knowledgebase Article 190162, “Terminal Server and the 2048 Open File Limitation.”
12: The MicroKernel cannot find the specified file
The MicroKernel may return this status code for a number of reasons, which have different solutions.
Check that the file exists and that you specified the correct file.
Check the key buffer parameter to make sure the path name is terminated with a blank or a binary zero.
When accessing a file on a server, ensure that you have file scan rights to the directory in which the file resides. Occasionally, a corrupt key can cause this status code. Drop the key, then add it again.
This error code may also be returned when the file dbnames.cfg has been removed and old data source names (DSNs) that reference that file are not removed from the ODBC configuration.
You attempted to open a local file with a Workgroup engine not designated as the gateway engine for the file. Go to the directory where the file you attempted to open resides. Check to see if the ~PVSW~.LOC file in that directory is flagged read-only. If so, change it to read-write.
You may have a status 12 returned and see X$FILE.DDF for the file name in your DDFs.
If the file.ddf is examined with a Btrieve utility, the location name for the dictionary files will be x$file.ddf, x$field.ddf, x$index.ddf, instead of the standard file.ddf, field.ddf, index.ddf. An unsupported DDF Creation utility called DDL Services (ddlsvcs.dll) created the DDFs. DDL Services has a known bug that causes the system table to be populated with incorrect data.
You may get status 12 when a file with a file name or path with embedded spaces is opened on certain Windows 32-bit platforms. Btrieve data files can be accessed using long names, but long names cannot be used for other files.
To enable embedded spaces
1. Start Zen Control Center.
2. Expand the nodes for Zen.
3. Expand the Local Client node.
4. Right-click MicroKernel Router and select Properties. Log in if prompted.
5. Click Application Characteristics.
6. Enable Embedded Spaces.
13: The MicroKernel could not open the extension file for an extended file
The MicroKernel could not open the extension file for an extended file that the application tried to open. An extended file can consist of a base file and up to 31 extension files. Extension files must remain in the same volume and directory as their base files. The MicroKernel returns this status code if you delete, move, or rename the extension files.
14: The MicroKernel cannot create or open the pre-image file
The MicroKernel uses pre-image files only for data files before version 6.
The MicroKernel returns this status code in one of the following situations:
The MicroKernel cannot create a new pre-image file because the disk directory is full. The MicroKernel must be able to create a pre-image file.
The MicroKernel cannot open the pre-image file to restore file integrity. If the pre-image file is erased or damaged, the MicroKernel cannot restore the file integrity. See Advanced Operations Guide for more information about recovering damaged files.
The workstation MicroKernel cannot assign a handle to the pre-image file because the MicroKernel was not started by a user with access rights to the pre-image file.
The file structure of a pre-image file created by this MicroKernel is different from the file structure of a pre-image file created by a v5.x MicroKernel. If you have an extraneous .PRE file in v5.x format, the MicroKernel returns this status code when you try to open the data file to which the .PRE file belongs.
15: The application encountered an I/O error during pre-imaging
The MicroKernel uses pre-image files only for pre-v6.0 data files.
The pre-image file is damaged and the integrity of the data file cannot be ensured. See Advanced Operations Guide for more information about recovering damaged files.
The disk is full. Erase any unnecessary files.
16: The application encountered an expansion error
This status code became obsolete in MicroKernel version 6.0.
The MicroKernel encountered an error while writing the directory structure to disk prior to creating the expanded file partition. Either the MicroKernel cannot close the file, or a new page was added to the file and the MicroKernel cannot close and reopen the file to update the directory structure. Check for a disk hardware failure.
18: The disk is full
The MicroKernel can return this status code in the following situations:
The disk is full and the MicroKernel cannot expand the file to accommodate additional records. Erase any unnecessary files.
There is not enough space to append a new page to the data file.
The pre-image file is out of disk space. If your files are in pre-v6.0 format and you are in a transaction, the pre-image file size increases for the duration of the transaction. If you receive this status code, either reduce the number of operations in the transaction, or obtain more disk space.
In some environments, you can restrict the amount of disk space available to each user. This status code indicates that the application attempted to expand a data file beyond the amount of disk space allocated to the file owner.
You tried to read or modify a file which was not closed properly after a disk full error. Make sure that every application using the file at the time of the disk full error closed the file successfully.
If a client connected to a Zen server encounters this status code, other clients performing read-only operations from the same disk may also receive a non-zero status.
19: The application encountered an unrecoverable error
To ensure file integrity, recover the file as described in Zen User’s Guide.
20: The MicroKernel or Btrieve Requester is inactive
Note:  For more recovery solutions, see the Actian knowledge base at the Actian website for new and updated articles on troubleshooting this status code.
Note:  .
If you are running an application in a client/server environment:
Make sure the Btrieve requester is loaded.
Verify that the TCP/IP protocol is properly installed at the client machine and that no two machines on the network have the same network address.
Make sure at least one of the client configuration options, Access > Use Local MicroKernel Engine or Access > Use Remote MicroKernel Engine is enabled. If your environment includes both a server engine and Workgroup engines, you should have both settings enabled.
If you are running an application in a workstation/workgroup environment, make sure the MicroKernel is loaded.
If you are running an application in a client/server environment and also need to access files located on a local drive:
Make sure the Btrieve Requester is loaded.
Make sure both of the client configuration options, Access > Use Local MicroKernel Engine or Access > Use Remote MicroKernel Engine are enabled.
Make sure a local MicroKernel is available and loaded.
If you are operating in a DOS server environment:
Zen installs BTRBOX95 by default. As long as it is installed, no other requester can be used.
If you want to use BTRBOX95, then run the setup utility. This loads the appropriate file for clients running Windows 32-bit operating system. After installation, restart the client.
For Windows 32-bit platform users: Open a command prompt and run a DOS Btrieve application.
If you are operating in a Windows server environment:
Make sure the MicroKernel is started before generating any requests.
Make sure the Windows DLLs are in your path.
Make sure the appropriate communications modules are loaded at the server.
21: The key buffer parameter is too short
The key buffer parameter is not long enough to accommodate the key field for the requested index path. Verify that the length of the key buffer equals the defined length of the key specified in the key number parameter.
22: The data buffer parameter is too short
The data buffer parameter specified by the application was not large enough to accommodate either the minimum length of the record for an Insert or Update operation, or the entire record length for a Get or Step operation. Also, the data buffer may not be large enough to accommodate the length of data required for operations such as Create, Create Index, Stat, Get By Percentage, Find Percentage, or Version.
For Get or Step operations, the MicroKernel returns as much data as it can and this status code, indicating that it cannot return the entire record.
For an Insert operation, the MicroKernel does not insert the record if the data buffer is shorter than the fixed-length portion of the record.
For an Update operation, if the data buffer is too short to contain the fixed-length portion of a record, the MicroKernel does not update the record.
For the Create, Stat, and Create Index operations, the data buffer is not long enough to contain all the file specifications, the key specifications, and (if specified) the Alternate Collating Sequence (ACS) definition.
For the Get by Percentage or Find Percentage operation, the data buffer length is less than 4 bytes.
For the Version operation, the data buffer length is less than 5 bytes.
The data buffer parameter is too short when access table with more than 60 field using ActiveX. Download the latest ActiveX controls from the Actian website.
A corrupt file may be indicated if the file allows variable-length records and you receive this status code on a Get or Step operation. In such a corrupt file, you can receive status code 54 when you use Get or Step operations to read other records. Recover the file using the instructions in Zen User’s Guide.
23: The position block parameter is not 128 bytes long
This status code became obsolete in Btrieve language interface version 6.0.
The position block parameter must be exactly 128 bytes long.
24: The page size or data buffer size is invalid
The MicroKernel returns this status code in one of the following situations:
The page size you specified when creating a file is invalid. The page size must be a multiple of 512 bytes and cannot exceed 4096 bytes (up to 8.x file format) or 8192 bytes (9.0 file format) or 16384 (9.5 and 13.0 file formats).
During a Create operation, the page size is the first file specification the MicroKernel checks. If you receive this status code at this point, it can indicate an invalid data buffer parameter.
25: The application cannot create the specified file
The MicroKernel returns this status code in one of the following situations:
If an application attempted to create a data file, the disk directory or the disk itself may be full.
If an application tried to create a file over an existing file, the existing file is open or the operating system will not allow the operation for another reason.
In an attempt to create a Btrieve file over existing Btrieve file, this status will be returned. The keybuffer on the Btrieve create operation API (op code 14) is set properly to create a file over an existing file.
This problem may be caused by antivirus software.
Note:  This happens when the operating system returns an unusual status code to the engine. Normally, the engine expects either a success or the file already exists. In one situation, the error code was being returned because the file handle that the engine was using was not functional; however, the operating system call that the engine makes is supposed to return a file handle.
One solution is to disable the Antivirus software. Contact the third party vendor for additional information on configuring the Antivirus software to eliminate scanning specific data files.
26: The number of keys specified is invalid
The number of keys specified for the page size is invalid. Note that the maximum number of keys is 119 for all file versions.
The number of key segments can vary but must be within the limits shown by the following table.
 
Page Size (bytes)
Maximum Key Segments by File Version
8.x and earlier
9.0
9.5
13.0
512
8
8
Rounded up2
Rounded up2
1024
23
23
97
Rounded up2
1536
24
24
Rounded up2
Rounded up2
2048
54
54
97
Rounded up2
2560
54
54
Rounded up2
Rounded up2
3072
54
54
Rounded up2
Rounded up2
3584
54
54
Rounded up2
Rounded up2
4096
119
119
2043
1833
8192
n/a1
119
4203
3783
16384
n/a1
n/a1
4203
3783
1"n/a" stands for "not applicable."
2"Rounded up" means that the page size is rounded up to the next size supported by the file version. For example, 512 is rounded up to 1024, 2560 is rounded up to 4096, and so forth.
3While a 9.5 format or later file can have more than 119 segments, the number of indexes is limited to 119.
Conditions For Which Status Code 26 Is Returned
The following conditions apply to the Btrieve Create operation. See Create (14) in Btrieve API Guide.
Number of keys or key segments exceeds the permissible limit for the given file format and page size. The maximum number of keys is 119 for all file formats and page sizes. The number of segments is listed in the table above.
A key-only file is being created and more than one key is supplied in the data buffer.
A key-only file is being created, the Reserve Duplication Pointers flag is on, and the Number of Duplicate Pointers to Reserve field is equal to or greater than 1.
The number of segments specified in the data buffer exceeds the limit for maximum segments.
The Number of Duplicate Pointers to Reserve field exceeds the limit for maximum number of keys.
The following condition applies to the Btrieve Create Index API operation. See Create Index (31) in Btrieve API Guide.
The number of segments specified in the data buffer exceeds the limit for maximum segments.
Nullable Columns
Note that nullable columns must also be considered. For example, in a data files with 4096 byte page size you are limited to 119 index segments per file. Because each indexed nullable column with true null support requires an index consisting of 2 segments, you cannot have more than 59 indexed nullable columns in a table (or indexed nullable true null fields in a Btrieve file). This limit is smaller for smaller page sizes.
Any file created with file version set to 7.x or later, and TRUENULLCREATE set to the default value of On, has true null support. Files created using an earlier file format, or with Pervasive.SQL 7, or with TRUENULLCREATE set to Off, do not have true null support and do not have this limitation.
27: The key position is invalid
The specified key field position is less than 1 or exceeds the defined record length for the file. Either the key position is greater than the record length or the key position plus the key length exceeds the record length.
28: The record length is invalid
The physical record length, which is the logical record length specified when creating the file plus any additional overhead for duplicate keys, reserved duplicate pointers, variable record pointers, and blank truncation information must be less than or equal to the page size minus 10 bytes (8 bytes if creating files in version 5 file format), and must be greater than or equal to 4 bytes.
For key-only files, the maximum record length is 253 bytes (255 bytes if creating files in version 5 file format).
For more information about calculating the physical record length, see Zen Programmer’s Guide.
29: The key length is invalid
The MicroKernel returns this status code for the following situations pertaining to the Btrieve Create or Create Index API operations. See Create (14) and Create Index (31), both in Btrieve API Guide.
The length of the entire key (all segments) exceeds 255.
The length of the entire key (all segments) is so large that less than 4 keys fit on a key page. For example, a 200 byte key on a 512 byte page.
A key segment length is 0 or greater than 255 bytes. The length of a key segment must agree with its key type if the key type implies a length (for example, an integer key must have a length evenly divisible by two). Each key page in the file must be large enough to hold at least four keys. If the page size is too small to accommodate four occurrences of the specified key length (plus overhead), you must increase the file page size or decrease the key length.
An additional byte of storage space is needed for the null indicator for the column. This error occurs through a SQL CREATE INDEX statement, or through the creation of a SQL PRIMARY KEY or FOREIGN KEY, if the index, or key, references a null CHAR column of 255 characters (or VARCHAR of 254). This additional byte causes the actual length of the index to be one byte longer, or 256 bytes. To resolve the error, reduce the size of the column or create the column as NOT NULL and try again. For a foreign key, if you decrease the size of the column, you must decrease both the referencing column and the referenced column.
A key segment length has a value other than 2, 4, or 8 and its data type is AUTOINCREMENT.
A key segment data type has a specified length that does not match any length allowed for it. For allowed key lengths, see Btrieve Key Data Types in SQL Engine Reference.
A key segment data type is NUMERICSTS and the segment length is less than 2.
A key segment data type is CURRENCY, AUTOTIMESTAMP, TIMESTAMP, or TIMESTAMP2 and the segment length is not 8.
A key segment data type is NULL INDICATOR SEGMENT and the segment length is not 1.
A key segment data type is GUID and the segment length is not 16.
A key segment data type is BINARY (“Use Old Style Binary Data Type” flag is “on”) and the segment length is odd.
30: The file specified is not a MicroKernel file
This status code is returned in one of the following situations:
The database engine attempted to access a valid Btrieve file but could not recognize it. One such scenario is an older engine trying to read a file created by a newer one. Whereas backward compatibility enables a newer engine to use an older file, an older engine usually cannot use a newer file because later features make the file format incompatible.
The MicroKernel did not create the file.
The first page of the file may be damaged. Use a backup copy of your data file. If you receive this status code and you suspect that the header page of the source file is damaged, recover the file as described in Advanced Operations Guide.
Note:  Previously, a status 2 application I/O error was returned when a pre-v6.0 Btrieve engine attempted to open a v6.x or later MicroKernel file.
31: The file is already extended
This status code became obsolete in MicroKernel version 6.0.
An application tried to extend a file that had already been extended; you can only extend a file once.
32: The file cannot be extended
The MicroKernel must create an extension file to accommodate a file which is growing larger than the operating system file size limit. However the MicroKernel encounters an error from the operating system when it tries to create and open the new extension file. Possible causes for receiving this status code include the following: the directory is full, the disk is full, or the MicroKernel has not been granted sufficient rights by the operating system.
33: The MicroKernel cannot unload
In the DOS environment, The MicroKernel returns this status code for the following reasons:
You attempted to unload the MicroKernel when you have loaded another terminate and stay resident (TSR) program after you loaded the MicroKernel. Unload the other TSR before unloading the MicroKernel.
You attempted to unload the MicroKernel from a 32-bit application that uses the BSTUB interface with the DOS/4G extender.
34: The specified extension name is invalid
This status code became obsolete in MicroKernel version 6.0.
An application specified an invalid file name for the extended partition. Check the validity of the file name.
35: The application encountered a directory error
Either a Get Directory operation specified a drive that does not exist, or a Set Directory operation specified an invalid pathname. Check the validity of both the drive and the pathname.
37: Another transaction is active
The application issued a Begin Transaction (19 or 1019) operation while another transaction was active by the same user or task; the active transaction can be nested or non-nested. This status code often indicates a problem in nested transactions within your application.
38: The MicroKernel encountered a transaction control file I/O error
This status code became obsolete in MicroKernel version 7.0.
The MicroKernel tried to write to the transaction control file. Possible causes for receiving this status code are that the disk is full, the disk is write protected, the transaction control file (BTRIEVE.TRN) that is created when you load the MicroKernel has been deleted, or the transaction control file is flagged read-only or is corrupt.
39: A Begin Transaction operation must precede an End/Abort Transaction operation
The application issued an End Transaction (20),or Abort Transaction (21) operation without a corresponding Begin Transaction (19 or 1019) operation. Make sure that each End or Abort Transaction operation in your program is executed only after a successful Begin Transaction operation.
40: The file access request exceeds the maximum number of files allowed
This status code became obsolete in MicroKernel version 6.0.
The application tried to access more than the maximum number of files allowed within a transaction. You set the maximum number of different files that you can access during a logical transaction when you configure the MicroKernel.
41: The MicroKernel does not allow the attempted operation
The application tried to perform an operation that is not allowed under certain conditions. For example:
The application attempts to perform a Step operation on a key-only file.
If using a server engine, the key number parameter of a continuous operation MicroKernel call is not valid.
The MicroKernel prohibits certain operations during transactions because they have too great an effect on the file or on performance. These operations include Set Owner, Clear Owner, Create Index, and Drop Index.
An application running on a 9.x or higher engine attempts to create a format file prior to 6.x (0600).
An application issued an Extended Delete operation (op codes 85–88) in an environment where AuditMaster 15 or DataExchange 15 is running.
42: A file previously opened in Accelerated mode was not closed
This status code became obsolete in MicroKernel version 6.0.
The MicroKernel returns this status code for the following reasons:
Either the application tried to open a v5.x data file that was previously accessed in Accelerated mode by a v5.x MicroKernel and never successfully closed, or the application tried to open a file for which a v6.0 or later MicroKernel encountered an unrecoverable error during a Set or Clear Owner operation. The file integrity cannot be ensured. See Advanced Operations Guide for information about recovering damaged files.
Your application tried to open a file in MicroKernel v5.x format using a v5.x MicroKernel; however, that same file was previously accessed by a v6.0 or later MicroKernel, which failed to close the file successfully and left a pre-image file on the disk. Version 5.x MicroKernels cannot read pre-image files created in v6.0 or later format.
43: The specified record address is invalid
The MicroKernel returns this status code for the following reasons:
The record address specified for a Get Direct operation is invalid. Either the address is outside the file boundaries, or it is not on a record boundary within or on a data page, or the record at the specified address has been deleted. For a Get Direct operation, specify the 4-byte address obtained by a Get Position operation.
If the records’ file is in v5.x format, this status code can indicate a file access conflict. For example, task 1 has a file locked in an exclusive transaction. Task 2 is reading records from the same file and tries to update a record that the transaction inserted. If task 2 reads the record and then task 1 aborts the transaction, task 2 receives this status code when issuing the Update operation.
For a Find Percentage operation that is seeking a percentage based on a record’s physical location within the file, the specified record address is invalid.
The file may be corrupt, and you must recover it. See Advanced Operations Guide for information about recovering damaged files.
44: The specified key path is invalid
The application tried to use the Get Direct/Record operation to establish positioning on an index path for a key whose value is null in the corresponding record. The MicroKernel cannot establish positioning based on a null key value.
45: The specified key flags are invalid
The key flags specification on a Create operation is inconsistent. If a key has multiple segments, the duplicate, modifiable, and null attributes should be the same for each segment in the key. Also, you cannot use the null or manual key attributes in a key-only file. The MicroKernel also returns this status code if the application attempted to specify a different Alternate Collating Sequence (ACS) for two or more segments of a segmented key.
46: Access to the requested file is denied
The MicroKernel returns this status code for the following reasons:
The application opened a file in read-only mode and tried to perform a Write operation on that file.
The application attempted to perform a Write operation on a file that is flagged read-only by the operating system.
When the application opened the file, it did not provide the correct owner name required for updates. For more information, see status code 51: The owner name is invalid.
(Workgroup engine only) If a Workgroup engine user or task opens a file that a client machine has opened using a server MicroKernel, the MicroKernel returns this status code if the Workgroup engine user attempts to write to the file.
(9.x and higher engines only) The application attempted to perform a Write operation on a 5.x format file. When using a 9.x or higher engine, you cannot perform a write operation such as insert or delete on a 5.x format file.
47: The number of files opened exceeds the maximum allowed
This status code became obsolete in MicroKernel version 6.0.
Pre-v6.0 workstation MicroKernels return this status code when the number of files opened in Accelerated mode exceeded the number of buffers available in the MicroKernel cache. When a file is opened in Accelerated mode, the MicroKernel reserves one of its cache buffers for the file. It always reserves five empty buffers for index manipulation. Reconfigure Btrieve with both a smaller /P configuration option (to allocate more buffers) and a larger /M option (to increase the cache allocation).
48: The alternate collating sequence definition is invalid
The MicroKernel returns this status code for the following reasons:
The first byte of an Alternate Collating Sequence (ACS) definition (the identification byte) does not contain the hexadecimal value AC (for user-defined ACSs), AD (for locale-specific ACSs), or AE (for international sorting rules support). Make sure that the first byte contains the appropriate value.
You set the Create File Version option to v5.x, and you attempted to create a file that contains a key with a locale-specific ACS. Pre-v6.0 files do not support locale-specific ACSs.
49: The extended key type is invalid
The MicroKernel returns this status code for the following reasons:
You tried to create a file or an index with an invalid extended key type.
You tried to assign an Alternate Collating Sequence (ACS) to a BINARY key or key segment. You can assign an ACS only to a STRING, LSTRING, WSTRING, WZSTRING, or ZSTRING key type.
You defined an index requiring an ACS, but no ACS definition exists either in the file or in the key definition passed in the data buffer.
You attempted to create a key segment with both the Case Insensitivity and the ACS flags set, and the MicroKernel is configured to create files in 5.x format. This combination is invalid for 5.x files.
You set Create File Version value to 5.x, and then tried to create a file with a NUMERICSA or NUMERICSTS key. Pre-6.x files do not support these key types.
You set Create File Version to 6.x, and then tried to use one of the 7.x data types, such as CURRENCY or TIMESTAMP. Pre-v7.x files do not support these key types.
You set Create File Version to 9.0 or an earlier version and then tried to use a newer data type, such as AUTOTIMESTAMP, GUID, or TIMESTAMP2. Older file versions do not support these data types.
To change the Create File Version setting:
1. Start Zen Control Center.
2. Expand Engines and find the desired engine name.
3. Right-click on the engine name and select Properties.
4. Click Compatibility.
5. In the right-hand frame, change the Create File Version.
50: The file owner is already set
The application tried to perform a Set Owner operation on a file that already has an owner. Use the Clear Owner operation to remove the previous owner before specifying a new one.
51: The owner name is invalid
The MicroKernel returns this status code for the following reasons:
If the application received this status code from a Set Owner operation, the owner names specified in the key buffer and data buffer do not match.
If this status code occurred during an Open operation or a DROP TABLE statement, the application attempted to open a file that has an owner name assigned to it. The application must specify the owner name in the data buffer. Ensure that the owner name is null-terminated and that the data buffer length is long enough to include the owner name plus the null terminator.
The owner name string failed to meet the following requirements:
Short owner names must be no longer than 8 characters.
The length limit of a long owner name depends on the file format.
For more information, see Owner Names in Advanced Operations Guide.
52: An error occurred while writing to the cache
This status code became obsolete starting as of MicroKernel version 6.0.
While trying to make a cache buffer available, the MicroKernel attempted to write data to a disk from a file that was previously opened in Accelerated mode. The operating system returned an I/O error during the write. This generally indicates a hardware memory problem. Unload and reload Btrieve before you continue.
53: The language interface version is invalid
An application tried to access a file containing variable-length records with a language interface from Btrieve v3.15 or earlier.
54: The variable-length portion of the record is corrupt
During a Get or Step operation, the MicroKernel could not read all or part of the variable-length portion of a record. The MicroKernel returns as much data as possible to the application. This status code usually indicates that one or more pages used to store variable-length records are corrupt. Check the data buffer length the MicroKernel returns to see how much of the record was returned. Recover the damaged file as described in Zen User’s Guide.
55: The application specified an invalid attribute for an AUTOINCREMENT key
The data field indexed by an autoincrement key can be part of a different segmented key only if the key number of the autoincrement key is less than the key number of the new segmented key and the new data type flag referencing the field is not AUTOINCREMENT
56: An index is incomplete
An index can be damaged if a Create Index operation (31) or a Drop Index operation (32) is interrupted before it runs to completion. Perform a Drop Index operation to completely remove the damaged index from the file, then rebuild the index with the Create Index operation, if desired.
57: An expanded memory error occurred
This status code became obsolete in MicroKernel version 6.0.
Btrieve for DOS returns this status code if it receives an error from the Expanded Memory Manager. This status code usually means that the MicroKernel was unable to save or restore the memory mapping register context, indicating an incompatibility with another application that uses expanded memory.
58: The compression buffer length is too short
This status code became obsolete in Pervasive.SQL 2000i.
59: The specified file already exists
During a Create operation, the application specified -1 in the key number parameter and the name of an existing file in the key buffer parameter. To overwrite the existing file, remove the -1 from the key number parameter. To preserve the existing file, alter the file name specified in the key buffer parameter.
60: The specified reject count has been reached
The MicroKernel rejected the number of records specified by the reject count before a Get Next Extended, Get Previous Extended, Step Next Extended, or Step Previous Extended operation found the requested number of records that satisfy the filtering condition. Check the first two bytes returned in the data buffer for the number of records that were retrieved.
61: The work space is too small
The Get Next Extended, Get Previous Extended, Step Next Extended, and Step Previous Extended operations use a buffer as work space. This status code indicates that the work space (set by default to 16 KB) is not large enough to hold the filtering data buffer structure and the largest record to be received. You will receive status code 0 if the work space is large enough to hold the filter/extraction expression and enough of the record to include all of the fields to be filtered or extracted.
62: The descriptor is incorrect
This status code is returned in the following situations:
The descriptor (data buffer structure), which is passed for a Get Next Extended, Get Previous Extended, Step Next Extended, Step Previous Extended, or Delete Extended operation, is incorrect. The descriptor length (the first two bytes of the data buffer) on the extended operation call must be the exact length of the descriptor. This requirement does not apply to the data buffer length option, which can still be declared longer than necessary.
On a Stat Extended operation, the signature field in the data buffer is not set to 0x74537845, the subfunction field is not set to 0x00000001, or the Zen Explorer field is not set to 0x00000000.
On a Get Direct/Chunk or Update Chunk operation, the descriptor structure in the data buffer is incorrect, or is inconsistent either internally or with respect to the data buffer length.
ActiveX control buffers are not cleared and reallocated. Use the Init method to clear and reallocate the control's buffers before the use of any extended operations in the code. In addition, if you are using AutoMode, it is necessary to establish logical position (GetLast, GetFirst, GetEqual, and so forth) before making the call to Init.
63: The data buffer parameter specified on an Insert Extended operation is invalid
An Insert Extended operation provided an invalid buffer. Either the buffer length is less than 5 bytes, or the number of records specified is 0. Correct the buffer length or the number of records.
64: The filter limit has been reached
The MicroKernel Engine returns this status code during an extended Get or Step operation when a rejected record is reached and no other record can satisfy the specified filter moving in the given direction of the operation. This status code applies only if the first segment of the key specified by the key number is also used as the first term of the filtering field.
65: The field offset is incorrect
The field offset in the extractor of an extended Get or Step operation is invalid based on the retrieved record length. Make sure that the field offset is a valid value from 0 to the record length minus 1.
66: The maximum number of open databases has been exceeded
This status code became obsolete in Pervasive.SQL 2000i.
The MicroKernel tried to open files bound to too many MicroKernel databases. To avoid receiving this status code, you must set a higher value for the number of databases that the MicroKernel can open.
See Advanced Operations Guide for more information about bound files.
67: The MicroKernel cannot open the SQL data dictionary files
The MicroKernel returns this status code for the following reasons:
An application attempted to use a data file that is bound to a the MicroKernel database, but the MicroKernel could not open one of the MicroKernel data dictionary files (FILE.DDF or, if the file has RI definitions, RELATE.DDF) or the configuration file (DBNAMES.CFG).
You attempted to create a file with the Replace option, and a bound MicroKernel data file with the same name and location already exists. However, the MicroKernel could not open the MicroKernel data dictionary file FILE.DDF, or the configuration file (DBNAMES.CFG).
If the data file has RI definitions, be sure that FILE.DDF and RELATE.DDF are in the location set for the database by the Dictionary Location property under Directories in the server configuration settings.
68: The MicroKernel cannot perform the RI Delete Cascade operation
The MicroKernel cannot enforce the Delete Cascade rule on a file under referential integrity (RI) control because the record that the application attempted to delete has more than 16 levels of descendants. Delete records from the lower levels, and then try again to delete the record that the application was attempting to delete initially. See Advanced Operations Guide for more information about RI.
69: The Delete operation specified a file that is damaged
The application encountered an error while the MicroKernel was attempting to enforce the Delete Cascade rule in response to a Delete operation. This status code indicates that the related file has been damaged and must be recreated. See Advanced Operations Guide for more information about RI and the Delete Cascade rule.
71: There is a violation of the RI definitions
If you attempted an Insert operation on a file under referential integrity (RI) control, a foreign key value in the record to be inserted does not have a corresponding primary key in the referenced file.
If you are performing an Update operation, there are two possible causes for this status code:
You attempted to change the value of a primary key.
You attempted to change the value of a foreign key to a value that does not exist for the defined primary key.
If you attempted a Delete operation, the restrict rule is enforced, and a primary key value in the record you are trying to delete references a foreign key in the referenced file. See Advanced Operations Guide for more information about RI.
72: The MicroKernel cannot open the RI referenced file
The referenced file cannot be found at the location specified by FILE.DDF and DBNAMES.CFG. Be sure that the referenced file is in one of the data file locations that the DBNAMES.CFG file specifies for the named database.
If the DBNAMES.CFG file is defined on a server, verify that the file location does not contain a drive letter.
If the DBNAMES.CFG file is defined for a Workgroup engine, make sure that the drive letters are the same (and map to the same locations) as specified in DBNAMES.CFG.
See Advanced Operations Guide for more information about referential integrity.
73: The RI definition is out of sync
The MicroKernel returns this status code for the following reasons:
You tried to open a data file that is bound to a MicroKernel database, and the database to which the file is bound was not found in the DBNAMES.CFG file.
You tried to open a data file with RI (Referential Integrity) definitions that are bound to a MicroKernel database, and the table to which the file is bound was not found in the database FILE.DDF file, or the table location and file name do not match the file location and file name as configured in the DBNAMES.CFG or FILE.DDF file.
You attempted to modify a bound file, and the RI definition for that file disagrees with the definition in the RELATE.DDF file.
You attempted an Insert, Delete, or Update operation that would change a foreign key, if the file related to this file is out of sync (an attempt to open or modify the related file would have returned this same status code).
You attempted to create a file with the Replace option, and a bound MicroKernel data file with the same name and location already exists. However, the MicroKernel detected that the existing bound file was out of sync (that is, an attempt to open the existing file would have returned this same status code).
Note:  The same named database cannot exist on two servers on the same network. So, if the intent is to move the dictionaries to another server on the same network, one way would be to delete the named database on the old server before creating the same named database on the new server.
Check the RI constraints on your database. For information about how to do this, see Zen User’s Guide.
75: The Btrieve operation has been canceled
A Btrieve operation may be canceled for various reasons, such as a deliberate choice by the user to do so, insufficient system resources, higher priority of another operation, or shutdown of the engine or the operating system.
76: There is a conflict on the referenced file
An application attempted to perform an Update, Insert, or Delete operation on a referential integrity-controlled file that references another file. The application cannot open the referenced file for RI checking because it is already open in Exclusive mode. Wait until the referenced file is closed or is opened in a mode other than Exclusive, and then retry the operation. See Advanced Operations Guide for more information about RI.
77: The application encountered a wait error
This status code became obsolete in MicroKernel version 7.0.
This is an informative status code. You must retry the operation yourself; the MicroKernel does not automatically retry the operation. A client-server MicroKernel returns this status code in one of the following situations:
The application specified a wait lock bias for an operation, but another user has locked the requested resource.
The application is currently processing a wait transaction and tried to access a file that another user has locked.
When you are using the Btrieve Requester to access the MicroKernel, the Requester waits and retries if a requested resource is locked. When a server-based application is accessing the MicroKernel and the requested resource is locked, a wait is also required. In this case, the MicroKernel is expected to perform the wait. Because this would occupy the MicroKernel and lock out other users who might be trying to release the requested resource, the MicroKernel does not perform the wait. Instead, it returns this status code, and the server-based application must retry later.
78: The MicroKernel detected a deadlock condition
The application should clear all resources by aborting, ending the transaction, or releasing all record locks before proceeding. This breaks the deadlock, allowing other applications to access the resources for which they are waiting.
79: A programming error occurred
This status code became obsolete in MicroKernel version 7.0.
There is a malfunction that the MicroKernel cannot specifically detect or from which the MicroKernel cannot recover. Retry the operation. If the error persists, there may be system corruption; try to clear the system by rebooting, and then try the operation again.
80: The MicroKernel encountered a record-level conflict
The MicroKernel did not perform the Update or Delete operation because of a record-level conflict. For example, station A reads a record, station B reads the same record and updates it, and then station A attempts to update the record. The application should reread the record prior to resending an Update or Delete operation. Alternatively, the application can employ record locks to avoid conflicts.
In key-only files, you receive this status code if the record is moved in the file b-tree after being read and before being updated or deleted. A record can move as a result of other records being inserted, updated, or deleted.
81: The MicroKernel encountered a lock error
The MicroKernel returns this status code in one of the following situations:
The application tried to unlock a record that is locked with a multiple record lock, but the record position stored in the data buffer does not correspond to any record locked in the associated file.
The application tried to unlock a single-record lock with a multiple-record lock or vice-versa.
82: The MicroKernel lost positioning
When performing a Get Next or Get Previous operation on a key with duplicates, the application tried to retrieve a record that was deleted or whose key value was modified by another application. Use a Get Equal or a Get Direct/Record operation to reestablish positioning. See status code 44: The specified key path is invalid for a related positioning problem.
83: The MicroKernel attempted to update or delete a record that was read outside the transaction
This status code became obsolete in MicroKernel version 7.0.
The application tried to update or delete a record within a transaction, but it did not read the record within the transaction. The application must read the record within the transaction before attempting to modify the data.
84: The record or page is locked
An Insert, Update, or Delete operation attempted to lock an index page to insert or delete a key value. Have your application check for this status code and retry the operation if the status code is returned.
The application tried one of the following:
Applied a no-wait lock on a record that is currently locked by another application
Tried to access a file in a no-wait transaction while another application holds one or more active record locks in that file
Tried to update or delete a record locked by another application.
The application can use either of the following recovery methods:
Retry the operation until it is successful. This can be the simplest and quickest solution for a network with light to moderate use.
Note:  Applications should limit the number of retry attempts when status 84 is received inside a concurrent transaction. Otherwise, the application might enter a deadlock situation with another transaction. If status 84 is still received after a few retries, abort the transaction and then attempt the transaction again.
Use the wait option (+100/+300) instead of the no-wait option (in versions that support the wait option).
85: The file is locked
The MicroKernel returns this status code in one of the following situations:
While one user has a file locked in an exclusive transaction, another user attempts to lock all or part of that file.
The workstation MicroKernel has a file open, and a client machine that has the Requester loaded tries to open the same file via the server MicroKernel. The server MicroKernel cannot open the file because it cannot obtain exclusive access. The client machine that has the Requester loaded receives this status code.
When opened by a MicroKernel, two data files have the same file name but different extensions (for example, INVOICE.HDR and INVOICE.DET). One file is open and in Continuous Operation mode, causing the MicroKernel to generate a delta file (for example, INVOICE.^^^). The MicroKernel returns this status code when you attempt to open the second file. For this reason, we recommend naming your files with completely different names, not just reusing the same name with different extensions.
Without any pattern of occurrence, you may receive a status 85 when the file is closed because antivirus software opens and locks the file to scan causing the next database operation to fail. To resolve, set the antivirus software not to scan data files. Consult your antivirus application documentation for instructions on excluding files.
A delete action was attempted on a data file that is in continuous operations. A data file put into continuous operations is locked from deletion through the Relational Engine and the MicroKernel Engine. In addition, the file is locked from any attempts to change the file structure, such as modifying keys and so forth.
86: The file table is full
An application may receive this status code if the database engine is unable to allocate memory to represent a Btrieve data file. The database engine also has a limit of 65,535 files that it can handle at the same time. The status code is also returned if that limit is reached.
One possible cause of this status code is an application that continues to open additional files without closing the data files that it has already opened. View the active files with the Monitor utility to examine whether this may be happening. See Monitoring Active Files in Advanced Operations Guide.
In addition, consider status code 87: The handle table is full. Status code 86 is for files and status code 87 is for handles. Multiple handles can be open for a given file. If the database engine cannot allocate memory for a Btrieve handle, then the application may receive a status 87. The handles allocated to client applications are limited by memory. Older types of handles that are allocated to DOS applications using the DOS requesters are limited 65,535.
87: The handle table is full
This status code became obsolete in Pervasive.SQL 2000i. The handle table is managed dynamically by the engine.
You have either attempted to open more handles than the MicroKernel is configured to support, or the MicroKernel attempted to open more files than the operating system allows.
To configure your operating system to allow more handles, see the operating system documentation.
It is helpful to know the following details regarding the MicroKernel requirements for handles from the operating system. When the same file is opened multiple times, the MicroKernel uses only one operating system handle. However, if the file is in v6.x or later format and the file is shared via MEFS mode, the MicroKernel opens a second handle for the associated .lck file.
If the file is in v5.x format, the MicroKernel might request a second handle, for the .PRE file. Also, if the file (in any format) is placed in Continuous Operation mode, the MicroKernel requests another handle for the delta file. If the file is extended, the MicroKernel requests an operating system handle for each of the extension files.
In the Btrieve v6.15 DOS or Microsoft Windows NT 4.0 environments, you may received this status code when opening the 16th file in a DOS application running under Windows NT. There may two solutions:
Btrieve File handle configuration may be set incorrectly in BTI.CFG. Check BTI.CFG for file handle setting (/h: and /f:) and increase those values.
Check the file= setting in CONFIG.NT. This file is in the WINNT\SYSTEM32 directory and raise the values.
NOTE: default value is 20.
88: The application encountered an incompatible mode error
The MicroKernel returns this status code in one of the following situations:
If an application opens a file in Exclusive mode, all other applications receive this status code when they try to open the same file in any mode.
If an application opens a file in any mode other than Exclusive, all other applications receive this status code when they try to open the same file in Exclusive mode.
If an application attempts to open a read-only file in Writable mode.
While using the MicroKernel Continuous Operation mode:
You attempt to remove a file from continuous operation, but the file is not in continuous operation mode.
You attempt to remove a file from continuous operation, but a different client placed the file into continuous operation.
You attempt to include two files in continuous operation that have the same name but different extensions.
You attempt to include a file in continuous operation, but the file is already in continuous operation.
The files were previously in continuous operation and the server stopped responding. When you attempt to take the files out of continuous operation, a status code 88 is returned.
In the last case described above, once the server stops responding, the database engine cannot determine which files were in continuous operation.
In order for you to take the files out of continuous operation, you must open the files before trying to end continuous operation mode. When the file is reopened, the Btrieve engine detects that the continuous ops flag is set and looks for the delta file. At that point, the delta file roll-in occurs.
To initiate the roll-in of an existing delta file, the associated data file must be opened. You can open the file with a utility such as the function executor or the application that uses the file. If the application that uses the file repeatedly opens and closes the file, you are advised to open the file with the function executor. This recommendation is made because the delta roll-in is a low priority task. The roll-in was designed in this fashion so that the file can still be used while the roll-in is occurring. If the application closes the file and the roll-in has not finished, the roll-in is initiated again when the file is reopened. As a low priority task, the roll-in process may take some time. Once the engine completes the roll-in, it deletes the delta file.
89: A name error occurred
This status code became obsolete in MicroKernel version 5.0.
BSERVER was loaded before you specified the short name to which the device was redirected. You must specify all short names that you want to share with the NET SHARE command before you start BSERVER.
90: The redirected device table is full
This status code became obsolete in MicroKernel version 6.0.
The DOS Requester redirection table or server routing table is full. This occurs if you attach to additional servers or map additional drives after loading the Requester. Reload the Requester, specifying a larger value for either the Number of File Servers (/S) option or the Number of Mapped Drives (/R) option. This status code also occurs if you detach from a server and attach to a different server. Once a client has attached to a server, the Requester does not remove its name from the server routing table.
91: The application encountered a server error
Note:  See the Actian knowledge base at the Actian website for new and updated articles on troubleshooting this status code.
The MicroKernel returns this status code in one of the following situations:
The Requester cannot establish a session with the server. Either the client/server MicroKernel is not loaded or the server is not active.
The MicroKernel has reached the maximum limit for the number of sessions it can open at one time. To avoid receiving this status code, increase the value for the Number of Sessions configuration option. Beginning with Pervasive.SQL 8, the MicroKernel dynamically manages the number of sessions, and it cannot be manually increased or decreased.
An application specified a path for a file and did not include the volume name in the path.
The MicroKernel Router has not been loaded, and the following situation has occurred: an application that uses both the MicroKernel Router and the MicroKernel to make remote calls (and which therefore includes the server and volume name when performing an Open operation) has attempted to open a remote file. Because the MicroKernel Router does not interpret the server name, the MicroKernel attempts to do so but cannot.
A communication or network addressing problem exists in your network environment, so the MicroKernel requests never reach their destination server address. Ensure that your client and server network components are up to date and certified for your network environment.
92: The transaction table is full
This status code became obsolete in MicroKernel version 7.0.
The application exceeded the maximum number of active transactions. Use the configuration properties to specify a higher value for the Number of Transactions configuration option.
93: The record lock types are incompatible
The application tried to mix single-record locks (+100/+200) and multiple-record locks (+300/+400) in the same file at the same time. You must release all locks of one type before you can execute a lock of the other type.
94: The application encountered a permission error
The MicroKernel returns this status code in the following situations:
The application tried to open or create a file in a directory without the proper privileges. The MicroKernel does not override the network privileges assigned to users.
The designated server is in the server routing table, but your particular client is not logged into that server.
The system data source name (DSN) on the server has an error in the pathname to the data files.
95: The session is no longer valid
Note:  See the Actian knowledge base at the Actian website for new and updated articles on troubleshooting this status code.
The server MicroKernel returns this status code for one of the following reasons:
The previously established session is no longer active due to an error at the client machine, at the server, or on the network. Verify that the client machine is still attached to the server, and then unload and reload the Btrieve Requester.
96: A communications environment error occurred
The MicroKernel returns this status code for the following reasons:
You tried to attach to the MicroKernel on a server, but the MicroKernel client table is full. To avoid receiving this error, add more memory. This resource is managed dynamically up to available memory.
An application that calls the MicroKernel can return this status code if the DBNAMES.CFG file contains a named database definition specifying a data location on a different server.
97: The data buffer is too small
The application either tried to read or write a record that is longer than the current allowed settings for the MicroKernel or the Btrieve Requester, as follows:
For an Update, Insert, or Create operation, the application receives this status code if the data buffer length it specifies for the record exceeds the message buffer length.
For a Get, Step, or Stat operation, the application receives this status code if the message buffer is shorter than the length of the data the MicroKernel would return, regardless of the data buffer length specified in the application.
For a Get Chunk or Update Chunk operation, the total size of the retrieved or updated chunk exceeds the message buffer length.
DOS Requesters only: Reload the Btrieve Requester and specify a higher value for the message buffer size. This is done using the
/D parameter which is documented in Getting Started with Zen.
100: No cache buffers are available
This indicates that the MicroKernel has used all the cache buffers it allocated at load time.
You may encounter this status code if your application uses a large number of write operations (insert, update, and delete) in a user transaction. The current implementation of the MicroKernel Engine requires all modified pages to reside in cache until the transaction completes.
Note: On a machine with limited available memory, you may not be able to successfully complete very large transactions with thousands of write operations.
If you are a developer, you can modify your application to commit transactions more frequently, so that fewer modified pages remain in cache. The more common approach to this problem is to increase Cache Allocation Size in the configuration options and then reload the MicroKernel.
On Windows, the first time the database engine starts it initializes the cache allocation size to 20% of physical memory and writes that value to the Windows Registry. After that, whenever the engine starts, it reads the value from the Registry and does not recalculate the setting. If you add or remove memory from the system, you must modify the cache allocation size setting to take best advantage of the new amount of memory available.
To increase Cache Allocation:
1. Start Zen Control Center.
2. Expand Engines and find the desired engine name.
3. Right-click the engine name and select Properties.
4. Click Performance Tuning.
5. In the right hand frame, adjust the Cache Allocation Size by entering the amount of memory to allocate for the cache. For information, see Cache Allocation Size in Advanced Operations Guide.
6. Restart the engines for the new setting to take effect.
101: Insufficient operating system memory is available
This indicates that there is not enough operating system memory available to perform the requested operation. To fix this problem, perform one or more of the following:
Go to Performance tuning in the server configuration and decrease the value for the Cache Allocation configuration option.
Add memory to the server.
102: Insufficient stack space is available
This indicates that the MicroKernel has run out of stack space. To increase the amount of stack space available to your application, relink the application, setting the stack size to a higher value. The MicroKernel returns this status code only to Windows-based applications that call WBTRCALL.DLL, or applications that call the MicroKernel Engine on the local server.
103: The chunk offset is too big
The MicroKernel returns this status code in one of the following situations:
A Get Direct/Chunk operation specified an offset beyond the end of the record, either explicitly or using the next-in-record bias to the subfunction value. Unless the MicroKernel returns this status code while processing the first chunk, the operation was partially successful. Check the data buffer length parameter immediately after the call to see how much data was retrieved (and therefore how many chunks).
An Update Chunk operation specified an offset that is more than one byte beyond the end of the record. This status code indicates that the MicroKernel has made no changes to the record.
An Update Chunk operation with an Append subfunction causes a record length to exceed its operating system file size limit. The MicroKernel has made no changes to the record.
104: The MicroKernel does not recognize the locale
During a Create or Create Index operation, the operating system was not able to return a collation table for the country ID and code page specified. Ensure that the application specified the locale’s country ID and code page correctly and that the operating system is configured to support the country ID and code page.
105: The file cannot be created with Variable-tail Allocation Tables (VATs)
An application tried to create a file with Variable-tail Allocation Tables (VATs) but without variable-length records (a precondition for files to use VATs). This status code applies to key-only files as well as to regular data files.
106: The MicroKernel cannot perform a Get Next Chunk operation
An application called the Get Direct/Chunk operation to retrieve a chunk from a record and used the next-in-record bias on the descriptor subfunction. However, after the application established its positioning in the record (and prior to this call), the target record was deleted.
107: The application attempted to perform a chunk operation on a pre-v6.0 file
An application tried to use either a Get Direct/Chunk operation or an Update Chunk operation on a file in pre-v6.0 format.
109: An unknown error was encountered either creating or accessing a semaphore
The Windows platform of the workstation MicroKernel attempted an operation using incompatible versions of the DLLs. Shut down the MicroKernel and make sure that you are using the most recent versions of the DLLs.
110: The MicroKernel cannot access the archival logging configuration file
The archival logging configuration file (BLOG.CFG) contains entries for data files on the drive where you want to perform archival logging. The MicroKernel returns this status code for the following reasons:
The MicroKernel cannot find the BLOG.CFG file. Ensure that the file is in the \BLOG directory in a real root directory of the physical drive that contains data files you want to log. (That is, do not use a mapped root directory.) If your files are on multiple volumes, you must create a \BLOG directory on each volume.
The MicroKernel cannot open the BLOG.CFG file. Either the file is locked or it does not exist.
The MicroKernel cannot read the BLOG.CFG file. Either the file does not use the correct format or it is corrupt. See Advanced Operations Guide for information about the BLOG.CFG file format.
111: The specified file name was not found in the archival logging configuration file
The MicroKernel cannot find the specified file in the BLOG.CFG file. The file must be specified in the BLOG.CFG file on the same physical drive. By default, the MicroKernel names the archival log file the same as the logged file, but with a .log extension. However, you can specify a different file name for the archival log file in the BLOG.CFG file. Ensure that the BLOG.CFG file indicates the correct file name for the archival log and ensure that the archival log file exists.
112: The specified file is in use by another client
Before the MicroKernel can perform a roll forward, the file must be in the same state it was in when it was last backed up. If another client changes the file, you must restore the file again before rolling forward.
113: The MicroKernel is unable to open the archival log for the specified file
The status code can result from different situations. In one case, the database engine cannot find the archival log file associated with the specified file. By default, the MicroKernel names the archival log file the same as the logged file, but with a .log extension. However, you can specify a different file name for the archival log file in the BLOG.CFG file. Ensure that the BLOG.CFG file indicates the correct file name for the archival log and ensure that the archival log file exists.
Another cause can be that archival logging is still turned on for a file and your are trying to roll forward a log file of the same name. Because the database engine is actively logging to the log file, you cannot use it to roll forward.
114: The archival log for the specified file is invalid
The archival log associated with the specified file is not a valid archival log file. By default, the MicroKernel names the archival log file the same as the logged file, but with a .log extension. However, you can specify a different file name for the archival log file in the BLOG.CFG file. Ensure that the BLOG.CFG file sets the correct file name for the archival log and ensure that the archival log file exists.
115: The MicroKernel cannot access the archival logging dump file
The MicroKernel cannot access the archival logging dump file for one of the following reasons:
The file name indicated for dumping entries in an archival log is not a valid file name. Be sure this file name does not contain a volume specification. The dump file is created on the same volume as the log file.
The caller does not have access rights to the dump file.
The MicroKernel cannot open the file because another user has opened the file using an exclusive operating system lock.
116: The file is owned by another MicroKernel engine acting as a Gateway
The MicroKernel cannot contact the engine running on the gateway computer even though it can read the locator file. This might occur the following reasons:
The name of the gateway computer cannot be resolved. To solve this problem, try one of the following:
Ensure that the gateway computer is registered with your name resolution service, such as DNS.
If you are not using a name resolution service, you must provide name resolution manually. Locate the file named HOSTS on your current machine. Add a line in this file associating the TCP/IP address of the gateway computer with the network name of that computer. For example, if the gateway computer is named “mycomp” and its IP address is 125.1.4.245, then you should add the following line to the file:
125.1.4.245 mycomp
The two computers are separated by a router so they can both see the server but cannot see each other. Try the following:
Use the Gateway Locator utility to identify the owner of the gateway.
Use Zen System Analyzer to test the network connection to that computer.
You may have attempted to open a file with two different Workgroup engines that are mapped to the files using different share names. The MicroKernel attempts to correct this but cannot do so in all cases. Make sure each computer is mapping to the same share name.
117: Invalid content detected in Continuous Operations delta file
An operation that caused the delta file to be read during continuous operations encountered invalid content. See also Using Continuous Operations in Advanced Operations Guide.
Note:  Invalid content in a delta file is a condition that is extremely unlikely to occur. However, if it does, operations on the data file made while backup was in progress may be lost. Transactions that occurred during the backup can be recovered if Transaction Logging or Transaction Durability is turned on for the server configuration and the data file was not opened in accelerated mode. If you require integrity of multiple data files, open all data files that were modified during backup even if their delta files are valid.
No user action is required if this status code occurs during a start of the Zen engine. That is, Zen was in continuous operations for one or more files when an outage occurred. The database engine does not attempt to roll in any invalid delta files.
In the scenario just described, the database engine logs a message reporting this status code. The Open operation that caused access to the bad delta file will still succeed even though the delta file contains invalid content. If a transaction log exists, lost transactions are rolled forward as normally occurs during an Open operation after an outage.
After the start and Open complete and any transactions are rolled forward, move the delta file with invalid content to a different directory. This allows you to perform continuous operations on the same data file again and retains the delta file with invalid content if you need technical support.
If an operation returns this status code while continuous operations is active, the operation did not successfully either read from or write to the delta file. In this case, the delta file may no longer be usable for continuous operations. Your best option is to do the following actions in the order indicated:
Close all OPENs of the data file.
Cease all further operations directed at the data file.
End continuous operations by issuing a butil -endbu command (or, if you use Backup Agent, you can issue the command pvbackup -off).
Note that if the delta file is damaged, the roll-in may not finish successfully when continuous operations end.
If Transaction Logging or Transaction Durability is active for the data file, perform a single Open of the data file to roll forward the transaction log.
If you require integrity of multiple data files, apply these same actions to all data files that were written during the backup.
After completing these corrective actions, move the delta file with invalid content to a different directory. This allows you to perform continuous operations on the same data file again and retains the delta file with invalid content if you need technical support.
120: Maximum number of B-Tree index levels reached
This status code may result if you use a large key size for an index and small page sizes. Index keys can fill the B-Tree to the allowable depth even though the B-Tree is not completely full.
To prevent this status code, try one or both of the following:
Rebuild the data file with a larger page size to increase the number of keys stored per page.
Turn on index balancing to maintain a better distribution of index keys (performance decreases somewhat with index balancing on). See Index Balancing in Advanced Operations Guide.
121: Start of defragmentation blocked by conflicting activity
Certain conditions prevent Defragmenter from acting on a data file. Attempts to defragment the file return this status code. To diagnose and solve this problem, check for the following things:
Was defragmentation of the file already requested? To find out, use dbdefrag -status filename.
If Backup Agent is on, complete your backup and turn off the agent before starting defragmentation. See also Backup Agent in Advanced Operations Guide.
If the engine that tried to open the file to defragment is configured for archival logging, you must turn off this feature in the Data Integrity settings of the properties for that engine.
If the file is associated with a temporary table or is a temporary system file, it cannot be defragmented.
123: Defragmentation is not supported for certain types of files, such as key-only
In the current release, key-only files cannot be defragmented.
124: Defragmentation stopped because request to lock file access timed out with no response
If you receive this error, then the action has been aborted because it was unable to lock a file before attempting to defragment it, and the allotted time for the request expired.
125: Defragmentation stopped because validation failed. No changes have been made to the file.
File defragmentation stopped because its validation could not be completed. No changes have been made to the file, and the operation of your system is unchanged.
The incomplete validation most likely occurred because you are using Microsoft Volume Shadow Copy Service (VSS). Defragmentation is not currently supported for a server engine in an environment where VSS has performed backup operations. However, if you restart the engine, you should be able to defragment files until VSS runs again.
126: Start of defragmentation blocked by insufficient free storage space
The engine did not allow a requested defragmentation to begin because free disk space was too low. Defragmenter requires free disk space equal to the size of the file to be defragmented, plus a small amount for defragmenting operations. Files undergoing high write activity may need more space. If space becomes low on a disk volume where defragmentation occurs, the engine cancels defragmentation of files on that volume and returns this error code. The space needed to defragment a file is displayed in its analysis results.
127: Open file handles prevented completion of defragmentation.
File defragmentation stopped because its validation could not be completed. No changes have been made to the file, and the operation of your system is unchanged.
Incomplete validation most likely occurred because as defragmentation of a file nears completion, the engine inspects open file handles to determine whether the defragmented file poses a risk of record retrieval errors. If it determines a risk, then defragmentation validation fails. Defragmentation may succeed during a period of lower activity.
130: The MicroKernel ran out of system locks
This status code became obsolete in MicroKernel version 6.15. It can indicate a temporary condition in which no system locks are currently available. The following are example cases:
A single client is performing a very large transaction that modifies thousands of records.
Many clients are performing large transactions concurrently.
A client can receive this code whether or not it is in a transaction. In some cases, a client can simply retry the failed operation. If other clients have released system locks, the operation may succeed. If a client in a transaction receives this code, end or abort the transaction. If the transaction is large, consider breaking it into smaller transactions. You can also use the Setup utility to lower the number of system locks devoted to explicit locking. To do so, lower the values assigned to the Number of Locks and/or Number of Sessions configuration options.
132: The file has reached its size limit
The MicroKernel returns this status code in one of the following situations:
The file reached its maximum size. This limit depends on the file version, the page size, and the number of records per page. See File Size in Advanced Operations Guide for a complete discussion.
An operation attempted to allocate more than the maximum number of page allowed for a data file.
A data file has been in continuous operation for a long period of time, and its delta file exceeds 4 GB.
A single data file segment has reached the operating system file size limit.
If the file uses a page size smaller than 4,096 bytes, you can rebuild the file using Rebuild utility and set the page size to 4,096 bytes, to take advantage of the larger file size limit.
133: More than 5 concurrent users attempted to access the same data file
Obsolete starting in Pervasive.SQL 7. In the Pervasive.SQL 2000i SDK for a workstation environment, you attempted to access a data file with more than five MicroKernels at the same time. The Pervasive.SQL 2000i SDK for a Workgroup environment limits the number of concurrent file users to five engines.
134: The MicroKernel cannot read the International Sorting Rule
The MicroKernel returns this status code for the following reasons:
The ISR is not found in the collate.cfg file.
The collate.cfg file is missing or corrupt.
The MicroKernel cannot read the ISR from the collate.cfg file.
135: The specified ISR table is corrupt or otherwise invalid
The MicroKernel found a readable collate.cfg file, but the specific International Sorting Rule table is invalid.
136: The MicroKernel cannot find the specified Alternate Collating Sequence in the file
The MicroKernel returns this status code in the following situations:
You tried to create an index that uses an Alternate Collating Sequence (ACS), but the MicroKernel cannot locate an ACS with the specified name in the file.
You called a Step Next Extended, Get Next Extended, Step Previous Extended, or Get Previous Extended operation and specified an ACS name, but the MicroKernel cannot locate an ACS with the specified name in the file.
137: The operation with this access method is incompatible
This error indicates one of the following examples of types of mismatch:
From a 13.30 or later client, your application tried to use a BTRVEX or BTRVEXID function to call a 13.20 or earlier version of a Zen database engine using one of the following operations:
Create (14)
Stat (15)
Get Direct/Chunk (23)
Unlock (27) to unlock a record with a multiple-record lock
Get Next Extended (36)
Get Previous Extended (37)
Step Next Extended (38)
Step Previous Extended (39)
Insert Extended (40)
On a PSQL 13.30 or later system, your application tried to use a BTRV function to call Get Position (22) on a 13.0 format file of large enough size that the record count in the data buffer required more than 4 bytes.
138: The NULL indicator position is invalid
In order to ensure accessibility to your data from all of the Zen access methods, the NULL indicator segment (NIS) must appear immediately before the data segment that the NIS indicates.
A NIS cannot be indicated by another NIS.
139: The MicroKernel has detected an unacceptable value in the key number
Certain operations either use, or reserve the use of, the key number parameter as a subfunction number, rather than as a means to specify a file index to be used with the operation. (Note: This is also done in the GetEqual operation). This status code is returned if an application does not specify a valid subfunction number (via the key number parameter) to one of these operations:
You issued a Begin Transaction operation with an invalid key number.
You issued an End Transaction operation with an invalid key number.
You issued an Abort Transaction operation with an invalid key number.
You issued a Start Extended operation with an invalid key number.
143: The MicroKernel cannot allow unauthorized access to files in a secure MicroKernel database
The MicroKernel returns this status code in the following situations:
You attempted to open a data file bound to a MicroKernel database that has security enabled. The MicroKernel does not allow access to such files except through the MicroKernel.
The MicroKernel also returns this status code if you are not using the MicroKernel and all of the following are true:
You attempt to create a file with the Replace option.
A bound MicroKernel data file with the same name and location already exists.
The database to which the existing file is bound has security enabled.
146: Duplicate system key
The same key number was generated by two different threads generating system keys.
147: The log segment is missing
The MicroKernel cannot find a log segment that is necessary for rolling at least one file forward.
148: A roll forward error occurred
The MicroKernel encountered an error while rolling a file forward. Depending on the operating system, the MicroKernel reports an error message as follows:
The Windows workstation with a Btrieve engine displays the message in the console message window and writes it to the event log zen.log.
The Windows server with the Btrieve engine does not display a message, but writes it to the event log zen.log.
149: SQL Trigger
While using the Btrieve API to alter database tables or entries, the system encountered SQL restrictions placed on the database by the SQL layer.
151: Chunk Offset Too Small
You cannot insert or delete chunks within the fixed portion of a record.
160: Invalid parameters passed to MicroKernel
The MicroKernel detected a corrupt parameter in the Service Reply Block (SRB) because either:
A network error occurred during transport or the SRB across the network, somehow corrupting the parameters in the SRB.
A mismatch was found between legacy Scalable SQL components on your system and Zen components. This is the most likely cause for this error.
To resolve this problem, reinstall Zen to restore consistency among the installed components. If you still encounter the problem after reinstalling and restarting, contact Actian Support.
161: A key has reached a maximum limit for user count, session count, or data in use, or has changed state to expired or disabled
Several scenarios can result in this status code being returned:
This code is returned after a temporary license has expired. The state of the key, which can be verified with the License Administration tool, changes to Expired. After a key expires, all users receive this code and are unable to access the engine. The solution is to authorize a permanent license key. Contact your vendor or Actian Support to purchase a permanent license key.
The maximum limit allowed by your license agreement for user count, session count, or data in use has been reached. You can try closing one or more sessions or files, which may reduce the value for user count, session count, or data in use below the maximum limit. A session is defined as a client ID used by the MicroKernel Engine or a connection to the Relational Engine. Another solution is to authorize an increase key for user count, session count, or data in use.
See also Monitoring in Advanced Operations Guide for details on determining the current, peak, and maximum values for user count, session count, and data in use.
You may also receive this status code if your machine configuration changed since you authorized the Zen product. Product authorization is tied to your machine hardware configuration. After you have applied a product key on a machine, changes to certain hardware configuration items could disable the key. The state of the key, which can be verified with the License Administrator tool, changes to Disabled.
If you need to change hardware configuration, deauthorize the key first using the License Administrator utilities. Deauthorizing the key disassociates the product key from the unique hardware configuration. After you complete the hardware configuration changes, you can again authorize the product key using the License Administrator utilities.
162: The client table is full
This status code became obsolete in Pervasive.SQL 2000i. The related configuration setting is managed dynamically by the engine.
You may receive this status code due to one of the following:
You have run out of memory.
Your number of Active Clients has exceeded 64K.
163: The NULL indicator cannot be the last segment
The NULL indicator segment (NIS) cannot be the last segment of the key descriptor.
169: Protocol mismatch between client cache and remote engine
This status code indicates that your client software is not up-to-date with your remote database engine. You should only receive this status code if you are running V8 pre-release client software against a V8 general-release remote engine.
The solution for this issue is to uninstall your client software and install the latest V8 client.
170: Database login required
Authentication to the database failed due to a wrong or missing username.
171: Database login failed
Authentication to the database failed due to a wrong or missing password.
172: Database name not found
Specify a valid database name for the machine.
173: Already logged in
A Btrieve login request failed because the client is already logged into the specified database.
174: Logout failed
A logout can fail if you are not logged in to a database or there are remaining open file handles to the database when the logout is attempted.
175: Wrong database URI format
The URI connection string was formatted incorrectly. The first five bytes should be “btrv:”.
176: File or table not specified in URI
An Open or Create was issued using a URI connection string that contained neither a file name nor a table name.
177: Table not in database
An Open was issued using a URI connection string that contained no file name, and a table name that does not exist in FILE.DDF.
178: Directory not in database
An Open was issued using a URI connection string that contained a full path name that references a directory that does not exist as one of the data directories for the database.
Add the directory to the database using the database properties dialog in the Zen Control Center (Windows) or the dbmaint command line utility (Linux).
1000 to 1999
MicroKernel Status Codes for Windows and DOS Workstations
The workstation MicroKernel engine returns the following status codes in Windows and DOS environments.
1001: The lock parameter is out of range
This status code became obsolete in MicroKernel version 7.0.
Version 6.x MicroKernels return this status code when the value specified for the Number of Locks configuration option is out of range. Pre-v6.0 MicroKernels return this status code when the value specified for the Multiple Locks configuration option is out of range.
1002: A memory allocation error occurred
Make sure that the workstation has enough memory to load all the programs it requires. For workstation versions of the MicroKernel, or client requesters, the insufficient memory may apply to conventional memory, expanded memory, or both.
1003: An invalid memory size parameter was specified
This status code is returned when the value for Cache Allocation Size is invalid.
To adjust Cache Allocation Size:
1. Start Zen Control Center.
2. Expand Engines and find the desired engine name.
3. Right-click the engine name and select Properties.
4. Click Performance Tuning.
5. In the right-hand frame, adjust the Cache Allocation Size by entering the amount of memory to allocate for the cache. See Cache Allocation Size in Advanced Operations Guide.
6. Restart the engine for the new setting to take effect.
1006: The pre-image buffer parameter is out of range
In Pervasive.SQL 2000i, the Extended Operation Buffer Size setting became obsolete. This resource is managed dynamically by the MicroKernel. Its value must be between 0 and 64,000, inclusive.
The Pre-Image Buffer Size configuration option must be between 1 and 64, inclusive. The pre-image file is used in pre-v6.0 files and by versions starting with MicroKernel v6.0 that are loaded with the Create Files in Pre-v6.x Format configuration option set to Yes. These options became obsolete in MicroKernel v7.8.
1007: The files parameter is out of range
In Pervasive.SQL 7, the Open Files configuration setting became obsolete. This resource is managed dynamically by the MicroKernel.
For pre-v6.0 engines, the Open Files configuration option must be between 1 and 250, inclusive. For v6.0 and later engines, see the appropriate version documentation for valid range information.
1008: The initialization parameter is invalid
The specified configuration options contain invalid or unidentifiable values.
1009: The transaction file name parameter is invalid
This status code became obsolete in MicroKernel version 7.0.
The file name specified for the Transaction file name configuration option is not valid. Ensure that the transaction file name is correct.
1010: An error occurred during the access of the transaction control file
This status code became obsolete in MicroKernel version 7.0.
The MicroKernel is unable to create, open, read, or write to BTRIEVE.TRN or MicroKernel.TRN. Set the TRNFILE setting in the BTI.INI file to C:\.
1011: The compression buffer parameter is out of range
This status code became obsolete in MicroKernel version 7.0.
Ensure that Compression Buffer Size option is set to a valid range. Check the target server configuration settings. See Advanced Operations Guide for valid range information.
1012: Invalid /n: option
This status code became obsolete in MicroKernel version 6.0.
The Maximum Number Of Files In A Transaction configuration option is invalid. Valid values are 0 to 18; the default is 12.
1013: The task list is full
This status code became obsolete in MicroKernel version 7.0.
In the Windows environment, this status code is returned if the task entry table is full. You can change the value for the Number of Tasks option using the Setup utility.
In the DOS environment, this status code is returned if the BREQNT requester is used without the /t parameter when BTRVID calls are present in the application. Reload the requester with a non-zero value for the /t parameter. For information on DOS Requester parameters, see Getting Started with Zen.
1015: One of the pointer parameters passed to the MicroKernel is invalid
One of the pointer parameters passed into the MicroKernel is invalid. The MicroKernel checks for invalid pointers only if you put the following line under the [BTRIEVE] heading in your initialization file: CHKPARMS=YES. Otherwise, the MicroKernel performs no pointer checking and you will not receive this status code.
1016: The MicroKernel is already initialized
This status code became obsolete in MicroKernel version 6.0.
You attempted to initialize the MicroKernel when it was already initialized. To reinitialize the MicroKernel, close all files, end/abort all transactions, and issue Btrieve operation 25, using the BTRV interface before calling the initialization function.
1017: The Btrieve Requester is unable to find the resource file WBTRVRES.DLL
WBTRCALL.DLL returns this status code when it cannot find the resource file WBTRVRES.DLL. Place the WBTRVRES.DLL file in the same directory as the WBTRCALL.DLL file.
1018: The application attempted to call the MicroKernel from a Btrieve callback function
The Windows MicroKernel does not allow a task to call the MicroKernel from a Btrieve callback function. You can only use the callback function with Btrieve for Windows.
1019: The MicroKernel canceled the current Btrieve operation at the request of the application’s Btrieve callback function
The MicroKernel callback function of an application returned a nonzero value, indicating that the application wants to terminate the current operation immediately. When the MicroKernel receives such a cancellation request, it attempts to terminate the currently executing operation and ceases to call the callback function for the duration of that operation. The MicroKernel may be unable to cancel the operation. However, if successful in doing so, the MicroKernel returns this status code.
1020: Btrieve Requester Interface communications error
The MicroKernel loader and requester interface returns this status code when it cannot send a message to the MicroKernel. This occurs when Windows is shutting down or when you terminate the MicroKernel using Ctrl+Alt+Delete. This is an informational status code only. No action is required. Your application continues the shutdown process. You also receive this status code when an application is running that prevents Windows from processing messages.
1021: The MicroKernel failed to initialize
The MicroKernel could not complete its initialization tasks. Check the MicroKernel console or error log for a message that cites a problem that prevented the MicroKernel from initializing.
The Windows server MicroKernel does not display a message but writes it to the Zen event log, the file named zen.log.
The Win32 workstation MicroKernel displays the message in the console message window and writes it to zen.log.
Correct any problems stated in the console message or error log, then retry the operation.
1022: The MicroKernel is shutting down
The operation cannot be completed because the MicroKernel is shutting down. To correct this problem, allow the engine to completely shut down, and then restart.
2000 to 2099
Btrieve Requester Status Codes
This section lists the status codes that the Btrieve Requesters generate.
2000: Internal error
The Btrieve requester encountered an internal error. Check the Zen event log, the file named zen.log, for more information.
2001: The memory allocation is insufficient
In a DOS environment, reduce the value specified for the /D configuration option.
2002: Invalid option
A provided option is invalid in the current context. For example, a provided flag is unsupported or a provided integer is out of range for the called function or method.
2003: The Requester does not allow local access to the specified file
The application attempted to access a file stored on a local drive. The configuration of the MicroKernel installed at the client machine does not allow access to local files.
2007: A pointer parameter is invalid
One of the pointer parameters passed to the MicroKernel is invalid. Check the program to ensure that the pointer parameters are correct.
2008: Router cannot find engine
The MicroKernel Router cannot communicate with the 6.15 engine. This status code is only used with the MicroKernel v4.0.100.
2009: Cannot load MicroKernel Router component
The Btrieve requester cannot load the MicroKernel Router. This can occur if the DLL fails to load or fails to obtain the necessary DLL entry point.
2011: Btrieve requester resource DLL not loaded
The resource DLL is either missing or incompatible with the current version of the requester. If this happens, the MicroKernel reverts to its default settings and continues to run.
2012: The Btrieve requester encountered an operating system error
Check the Zen event log, the file named zen.log for more information.
2200 to 2299
XLT Status Codes
This section lists the XLT status codes you can receive.
2200: XLT Winsock Error
This status code is returned when a Windows Socket initialization error occurs.
2201: XLT RPC Error
This status code is returned when the MicroKernel cannot establish a Remote Procedure Call (RPC) to the Relational Engine.
2300 to 2399
Named Database Status Codes
You can receive these status codes when using the named database features of the Zen engine.
2300: No more database names are defined
No more database names are defined. If the buffer is large enough to hold multiple database names, you might receive this status code and still have one or more database names returned. The application should check iBufLen to determine the number of names returned.
2301: The database name is invalid
Not a named database. Verify you have entered a valid database name.
2302: Invalid buffer length
The size of the sending buffer is too small and needs to be increased.
2303: The database name must be unique; the specified database name already exists
While creating a database, you specified a database name that already exists in the DBNAMES.CFG file. Specify a different, unique name for the database, or remove the existing database name first.
2304: The database type is invalid
While creating a database, you specified an invalid database type. Specify a database type of either bound or unbound.
2305: The specified path for data dictionary or data file locations is invalid
The path you specified for the bound, named database is invalid or the paths you specified for the data file locations are invalid. Ensure that the entered paths are either UNC paths or local paths and then retry the operation. Paths that contain mapped drive letters are not allowed.
2306: DBNAMES.CFG could not be updated
The path you specified for the bound, named database is invalid or the paths you specified for the data file locations are invalid. Ensure that the specified paths are either UNC or local paths and then retry the operation. Paths that contain mapped drive letters are not allowed.
If returned from the Client Reporting Engine, this error indicates an attempt to create, drop, or modify a database on that system. You can perform these operations only locally on the system designated as the storage server or remotely by connecting to the storage server through ZenCC, bcfg, or other tool.
2307: Cannot open DBNAMES.CFG file
If you are trying to access the DBNAMES.CFG file to obtain a list of database names defined for the Workgroup engine, be sure that the DBNAMES.CFG file is in your Windows directory or in the directory specified by the Database Names Directory configuration option. It should be located in the Windows system directory on 32-bit platforms. Either the location you have specified in the registry is incorrect or the registry key is corrupt. Use either of the following recovery solutions:
Check the location specified in the following registry key on the local machine:
HKEY_LOCAL_MACHINE\SOFTWARE\Actian\Zen\Database Names\DBNamesDirectory
Check HKEY_LOCAL_MACHINE\SOFTWARE\Actian\Zen\MicroKernel Router\Local. The value should be yes for local or no for server.
If returned from Client Reporting Engine, this error indicates that the Storage Server property has not been set or that the designated storage server does not have a Zen server installed and running.
2308: The specified RI flag is invalid
While creating a database, you specified an invalid RI setting. Specify only whether enforcement of referential integrity is on or off.
2309: The database is in use
You cannot modify the definition of a named database if another user is modifying the definition or if a user is connected to it. You also cannot connect to a named database if someone is modifying its definition.
2312: The bound database cannot share table data files
You cannot bind a data file referenced by a table in a bound, named database to another named database, or to another table in the same named database. For more information about bound databases, see Advanced Operations Guide.
2313: The bound database cannot share data dictionary files
The data dictionary files for a bound, named database cannot be referenced by another named database. For more information about bound databases, see Advanced Operations Guide.
2314: Cannot create DBNAMES.CFG file
An error occurred while attempting to generate the DBNAMES.CFG. The DBNAMES.CFG is created when the first database on the system is created. If the workstation DBNAMES.CFG file is being generated, ensure that the Windows directory in the Database Names Directory configuration option is a valid directory.
2316: Cannot create DDF files for the bound database
Zen cannot create the database files for the bound database. Ensure that the data dictionary files do not already exist at the specified location. Remove any existing data dictionary files before creating the bound, named database. For more information about bound databases, see Advanced Operations Guide.
2324: Data dictionary files are not bound
The data dictionary files for the specified named database are not bound, but should be. This normally indicates a situation in which the data dictionary files have been restored from a backup prior to the database being bound. Make sure that you restore your data dictionary from a backup which is consistent with the bound state of the databases. For more information about bound databases, see Advanced Operations Guide.
2325: Data dictionary files are already bound
The data dictionary files for the specified named database are already bound to another database. However, the other named database is not defined to the engine that is trying to bind or unbind the database. Make sure that you only reference the data dictionary files for a bound database from one engine. For more information about bound databases, see Advanced Operations Guide.
2326: Data dictionary files are bound, but do not need to be bound
An unbound, named database was checked. This does not indicate an invalid, or corrupted, named database, but does indicate an inconsistency between the named database definition and the actual state of the database.
This status code often indicates a situation in which the data dictionary files have been restored from a backup that was made when the database was bound. Either restore the data dictionary from a backup that is consistent with the bound state of the database, or bind and then unbind the database. The unbinding of the database removes the binding information from the data dictionary files.
2329: Data file for a table is not bound
The data file for a table in the database is not bound, but should be. This normally indicates a situation in which the data files for the database have been restored from a backup prior to the database being bound. Make sure that you restore your data from a backup that is consistent with the bound state of the database.
2330: Data file for a table is bound, but does not need to be bound
An unbound, named database was checked. This does not indicate an invalid, or corrupted, named database but does indicate an inconsistency between the named database definition and the actual state of the database. This status code often indicates a situation in which the data files for the database was bound. Either restore your data files from a backup that is consistent with the bound state of the database, or bind and then unbind the database.
The unbinding of the database removes the binding information from the data files if the binding information is no longer needed.
2331: Not allowed to change data dictionary location and change name at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2332: Not allowed to bind database and change name at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2333: Not allowed to unbind database and change name at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2334: Not allowed to create a data dictionary files and change name at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2335: Not allowed to change data locations and change name at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2336: Not allowed to change data dictionary location and bind database at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2337: Not allowed to change data dictionary location and unbind database at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2338: Not allowed to change the dictionary location and create dictionary files at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2339: Not allowed to create data dictionary files and bind database at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2340: Not allowed to create data dictionary and unbind database at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2341: Not allowed to bind database and change data locations at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2342: Not allowed to unbind database and change data locations at the same time
These two particular parameters are not allowed to be changed at the same time. Try changing each parameter separately.
2343: Named database general error
Unspecified error.
2351: Metadata version mismatch
3000 to 3099
MicroKernel Router Status Codes
This section lists the status codes you can receive from the MicroKernel router, which receives requests from the Btrieve requesters and routes them to the correct version of the MicroKernel.
3000: The MicroKernel router encountered a memory allocation error
The MicroKernel router could not internally allocate memory. Check the Zen event log, the file named zen.log, for more information.
3001: Local access is unavailable to the MicroKernel router
A call to the MicroKernel failed. This is most likely the result of an incorrect configuration. For example, if the MicroKernel is unavailable because of configuration settings and the file to be opened is local, then the MicroKernel router returns this status code.
3002: The MicroKernel router resource DLL is unavailable
The MicroKernel resource DLL is either missing or incompatible with the current version of the router. If this happens, the MicroKernel reverts to its default settings and continues to run. Check the Zen event log, the file named zen.log, for more information.
3003: The MicroKernel router detected an incompatible network component
The networking services component is not compatible with this version of the MicroKernel router. The most likely cause is that the Networking services DLL has been replaced by an older version. Check the Zen event log, the file named zen.log, for more information.
3004: The MicroKernel is not responding to the MicroKernel router
The MicroKernel is not responding to requests from the MicroKernel router. Verify that the MicroKernel is running.
3005: The MicroKernel router encountered an operating system error
The MicroKernel router encountered an unexpected error from the operating system, such as a shared memory failure. Check the Zen event log, the file named zen.log, for more information.
3006: The MicroKernel router detected an invalid session
The session information contained in a position block is invalid. This status code occurs for one of the following reasons:
The application is trying to use a position block for a file that resides on an engine and for which the connection has been previously terminated via a B_STOP (25) or B_RESET (28) operation.
The application is trying to use a position block for a file that resides on a remote server and that encountered an abnormal network error on a previous operation.
3008: Invalid configuration for MicroKernel router
This status code results from an invalid configuration. For example, if both client configuration options, Access > Use Local MicroKernel Engine and Access > Use Remote MicroKernel Engine are set to Off, the router has no valid path to take. If this situation occurs, set at least one of these options to On, depending on whether you are using a local engine, a remote engine, or both.
3009: NETinterface.DLL is not loaded
The MicroKernel router could not find NETAPI.DLL.
3012: Local engine is not accessible to the MicroKernel router
Access to the local engine is not possible because it is not loaded or could not be launched. You can receive this status code if you try to access a local file on a client and you do not have a Workgroup engine installed or if you try to access a local file on a server and the server engine is not running.
If you have only a server engine installed and your Zen event log, the file named zen.log, contains status code 3012 warning entries, perform the following steps.
To Turn Off Local Engine support (for clients and workstations only)
1. In ZenCC, expand Local Client.
2. Right-click MicroKernel Router and select Properties. Log in if prompted.
3. Click Access.
4. In the right hand frame, change the value of Use Local MicroKernel Engine to Off.
5. In the right-hand frame, change the value of Use Remote MicroKernel Engine to On. Click OK.
6. Restart the engines for the new settings to take effect.
3013: The remote engine is inaccessible to the MicroKernel router because the networking component is not loaded
Access to the remote engine is not possible because the MicroKernel router could not initialize the networking component. Possible causes include:
The client configuration option, Access > Use Remote MicroKernel Engine, is incorrectly set to Off. Set it to On to access a remote server engine.
The required networking component could not be found or is not compatible.
3014: The MicroKernel router cannot find an engine
The MicroKernel router could not complete the operation because it did not find an engine (local or remote) that could process the operation. Possible causes include:
The target network operating system is not available.
The target engine is not available.
In a Windows 3.x environment, you are using a shared drive name that contains a space. To resolve the condition, remove the space from the shared drive name. For example, if you connect to a server named “D Drive,” change the share name to “D_Drive.”
3015: The MicroKernel router encountered an initialization error
An unexpected error occurred during the initialization of the MicroKernel router. Check the Zen event log, the file named zen.log, for more information.
3016: The MicroKernel router encountered an internal error
The MicroKernel router encountered an internal error. Check the Zen event log, the file named zen.log, for more information.
3017: Data buffer of the local engine is too small
The requester has more data to send the MicroKernel than the MicroKernel buffers can handle. This status code is only relevant to an engine running locally and does not apply to client/server environments.
To avoid this error, reduce the data buffer size to no bigger than 63 KB or 64,512 bytes.
3018: The file is already closed
The MicroKernel router is shut down and is not accepting any more requests.
3019: The MicroKernel router encountered a semaphore error
A semaphore error occurred while trying to establish contact with the local engine. Check the Zen event log, the file named zen.log, for more information.
3020: An error occurred while loading the MicroKernel
You receive this status code when an error occurs while loading the MicroKernel or when access to the server and client machine shared memory objects are unavailable. Check the Zen event log, the file named zen.log, for more information.
3021: The MicroKernel router received a badly formatted data packet
The MicroKernel router rejected the response from the engine because it was badly formatted.Check the Zen event log, the file named zen.log, for more information.
3022: The MicroKernel router could not send the request to the remote engine because the specified data buffer length resulted in a data packet object that is too large
A request to the MicroKernel router specified a data buffer length that resulted in a data packet size greater than 64 KB, which is the maximum. This can occur even if the data buffer length for the request is smaller than 64 KB because the MicroKernel router adds some packet overhead as it forms the data packet. Check the Zen event log, the file named zen.log, for more information.
3030: Remote access not allowed
This code is returned if the path is remote, the client configuration setting for Use Local MicroKernel Engine has been set to Off, and either:
the key number on the open request indicates 'local only'; OR
the configuration setting for Use Remote MicroKernel Engine is set to Off.
3031: Linux requester cannot connect to this server
This code is returned if a Zen requester on Linux attempts to connect to a Pervasive.SQL 2000 server that has Service Pack 2a or earlier or to a Pervasive.SQL V8 server without Service Pack 1.
To use the Linux requester to connect to a Pervasive.SQL 2000 server, you must have a special update that is available from Actian Support.
To use the Linux requester to connect to a Pervasive.SQL V8 server, you must have Service Pack 1 or later.
3032: Failed to initialize shared memory to local engine
This status code results if a second user attempts to access another user's database engine through the MicroKernel Engine. The application is unable to connect to the local engine. Possibly a database engine has been started by another user on the machine in a non-elevated mode. If so, other users will not be able to connect to that engine.
One situation in which this status code may result is if a user starts the Workgroup Engine or Cache Engine in a Terminal Services session or by switching users through fast-user switching. Other users on the system cannot access that engine nor can they start their own copy of the engine. To allow multiple users access to a Workgroup Engine or Cache Engine in a Terminal Services session or through fast-user switching, start that engine as a service instead of as an executable.
3100 to 3199
Network Services Layer Status Codes
The following status codes originate from the Zen network services layer.
3103: Server name not found by Zen network services layer
The search for a target server name was unable to resolve an address after searching named pipes and DNS. Some possible causes include:
For Windows Platforms
The MicroKernel engine not running.
Server only: Named pipes are used in these two operating systems to resolve server names. The networking at the operating system level was unable to find the target named pipe.
3104: The Zen network services layer encountered a permission error
For Windows NT only: Permission to access the target named pipe is denied. If you receive this status code:
Verify that you have access to the inter-process communication mechanism.
Ensure that your passwords are identical if you have the same user name on two systems.
3105: No available transport protocol for the Zen network services layer
No transport protocol that is common to both the target server engine and clients is available. Check the Supported protocols setting within the Communication protocols option for both the client and server. For more information on Communication protocols, see Advanced Operations Guide.
3106: The Zen network services layer encountered a connection failure
The Zen network services layer was able to establish a transport connection at the client side, but the connection attempt at the target side failed. Some possible causes are:
The MicroKernel is not running on the server.
The network is overloaded.
The connection path is invalid.
You have more than one mapped drive to the same server.
You are trying to access a server engine on a Windows 32-bit server, and the server engine Accept Remote Requests setting is set to Off. You must turn this setting on. See To set the properties in ZenCC for a local client in Advanced Operations Guide. Click the Access category in the Properties tree.
Check the Zen event log, the file named zen.log, for more information if you receive this status code.
3107: The Zen network services layer is out of memory
The Zen network services layer has insufficient memory to continue. Verify that you are not in a low memory condition.
3108: The Zen network services layer detected an invalid session
The application attempted to use a network session that was not recognized by the Zen network services layer. If the error persists, contact Actian Support.
3110: The network layer is not connected
The application attempted to use a network connection that was no longer active. This happens when the session with the Zen network services layer is still valid, but was dropped by the network. Stop and restart the application.
3111: Failure during send to the target server
The Zen network services layer attempted to send an application request to the target server and encountered a network specific error from the target. Check the Zen event log, the file named zen.log, for more information.
Note:  If there is a problem with Auto Reconnect, a further status code 3131 will be issued.
3112: Failure during receive from the target server
The Zen network services layer attempted to receive data from the target server and encountered a network specific error. Check the Zen event log, the file named zen.log, for more information.
Note:  If there is a problem with Auto Reconnect, a further status code 3131 will be issued.
3114: The routing table of the Zen network services layer is full
The Zen network services layer server routing table is full. This table normally grows dynamically as needed. Verify that you are not in a low memory condition.
3115: Zen network services layer encountered a transport failure
The Zen network services layer encountered a socket error while creating the local transport endpoint on the client side. Check the Zen event log, the file named zen.log, for more information.
3116: Zen network services layer encountered a buffer mismatch
When a Zen Client cache engine is running under high load, the Zen network services layer may return this status code to indicate a mismatch in server and client requester data buffers. This error does not currently have an entry in the Zen event log, the file named zen.log. Status code 100 may also be associated with this behavior.
If this error is seen in when the client cache engine is running, make sure that you are using client components from PSQL v12 SP1 Update 2, PSQL v13, or later.
3119: No authentication context is available
NSL was unable to return the access context on the specified session for the supplied object. There are several reasons why NSL could not obtain the context and it varies depending on the transport type.
NamePipe – It is possible that NSL was able to locate the server via DNS, but when it tried to make a Named Pipes call to request authentication of the client, the Named Pipes communications failed. Ensure that Named Pipes is configured correctly for the network for both the client and server. See your operating system documentation for information on Named Pipes configuration.
Windows – You use stored client credentials to authenticate to the server, and there are no credentials stored and value for the Prompt for Client Credentials setting is Off.
To resolve this condition, use the configuration properties to change the Prompt for Client Credentials setting to On, or use the pvnetpass utility to store a valid set of client credentials for the server. See Advanced Operations Guide for more information about security. See Zen User’s Guide for more information about the pvnetpass utility.
Linux – You must configure a user name and password for all remote server data access. To resolve this condition, use the pvnetpass utility to specify a user name and password for the given server, or create a default user name and password for the server using pvnetpass. See Advanced Operations Guide for more information about security. See Zen User’s Guide for more information about the pvnetpass utility.
3124: Zen network services layer task table is full
For each user of the Network Services Layer, a task entry is created. If the maximum number of tasks has already been reached (512 and not configurable), this error is returned. Close any applications using Zen that are no longer needed.
3126: The Zen network services layer was unable to resolve the given file name into a valid path
Check that the given file name is a valid file format and path.
3131: Zen network services layer encountered an error while reconnecting
This status code means that Auto Reconnect was unsuccessful. The following messages will appear in zen.log:
“3131: Reconnect failed. Client and Server Message IDs out of synchronization.” The client and server did not agree on the current context. Because the integrity of the last request cannot be verified, the connection was terminated.
“3131: Reconnect not attempted, Auto Reconnect not enabled on either client or server.” In this case, either the client, server or both has Auto Reconnect disabled or your server version does not support Auto Reconnect. The reconnection attempt will not be made.
“3131: Reconnection attempt timed out.” This means that the client was unable to obtain a new connection to the server within the Auto Reconnect timeout period.
“3131: Reconnection negotiations failed after reestablishing network connection.” This means that the client was successful in making a new network connection to the server, but communications failed during the Zen Auto Reconnect negotiations.
Note:  A zen.log entry of “0: Reconnect after send/receive failure was successful” indicates a successful connection.
3132: Unsupported Function
This error is returned when the Scalable SQL interface attempts to communicate with the Pervasive.SQL 8 network services layer.
The legacy Scalable SQL Engine is not supported in any combination with Pervasive.SQL 8 components. If you receive this error, search for and uninstall Scalable SQL (or Pervasive.SQL 7), and or all if its components.
4000 to 4099
Database Utilities Status Codes
This section lists the status codes you can receive when using the Database Utilities (DBU).
4083: Component not loaded
If you receive this status code while attempting to start the Zen engine service, you are missing a key file. To resolve this problem, uninstall Zen and reinstall it.
Note:  You may get more information about the situation that caused this error by setting the environment variable, PVSW_DISP_LOAD_ERRS=AIF, and running the application again. This enables the Services DLL to display on-screen module load errors. However, this environment variable should only be set to diagnose module load errors. In all other cases, it should not be set.
4086: An internal error occurred. Utilities Requester receive size too small. Verify that the correct components are loaded
An operation provided a buffer that was not large enough to receive the requested information.
5000 to 5999
Encryption Status Codes
This section lists status codes you can receive when using wire encryption or enabling database security. In Advanced Operations Guide, see Zen Security for more information about these topics.
5000: Client requires encryption
Your client configuration setting for Wire Encryption is set to Always, and the server to which you are trying to connect either has a Wire Encryption setting of Never, or the server has a version of less than 8.50 which does not support the Wire Encryption feature.
To resolve this condition, either change the Wire Encryption setting of the client to If Needed or change the Wire Encryption setting of the server to Always or If Needed.
To change the Wire Encryption setting:
Use Zen Control Center. For information, see To set the properties in ZenCC for a local client in Advanced Operations Guide.
You can also use the bcfg command line tool. For information, see Configuration Using Bcfg in Advanced Operations Guide.
Note:  On any one machine, the Zen server and client share a single Wire Encryption setting.
5001: Server requires encryption
Your client configuration setting for Wire Encryption is set to Never, and the server to which you are trying to connect has a Wire Encryption setting of Always.
To resolve this condition, change the Wire Encryption setting of the client to If Needed or Always.
To change the Wire Encryption setting:
Use Zen Control Center as described under To set the properties in ZenCC for a local client in Advanced Operations Guide.
You can also use the bcfg command line tool as described under Configuration Using Bcfg in Advanced Operations Guide.
6000 to 6050
Data Dictionary Status Codes
This section lists the status codes that pertain to the data dictionary files. These codes often relate to errors involving referential integrity.
6002: Invalid Column
The column name cannot be used. The name may contain invalid characters or the name may be a duplicate name. See Naming Conventions in Zen Programmer’s Guide.
6003: Foreign Key Not Found
The column to which the foreign key is to be associated does not exist in the primary table.
6005: Column Not Nullable
This column cannot be made null. Certain data types, such as identity and small identity, cannot be null. Check the data type of the column. See Data Types in SQL Engine Reference for a list of the Zen data types.
6006: Invalid Data Type
The number for the data type is not within the valid ranges. The current range is 0 to 30. See Data Types in SQL Engine Reference for a list of the Zen data types.
6007: Invalid Index Number
The index number is less than zero. Negative numbers are not allowed as index numbers.
6008: Too Many Segments
The number of index segments is greater than the maximum allowed. Note that the maximum number of keys is 119 for all file versions. The number of key segments can vary but must be within the limits shown by the following table.
The number of index segments that you may use depends on the file page size.
 
Page Size (bytes)
Maximum Key Segments by File Version
8.x and earlier
9.0
9.5
13.0
512
8
8
Rounded up2
Rounded up2
1024
23
23
97
Rounded up2
1536
24
24
Rounded up2
Rounded up2
2048
54
54
97
Rounded up2
2560
54
54
Rounded up2
Rounded up2
3072
54
54
Rounded up2
Rounded up2
3584
54
54
Rounded up2
Rounded up2
4096
119
119
2043
1833
8192
n/a1
119
4203
3783
16384
n/a1
n/a1
4203
3783
1"n/a" stands for "not applicable."
2"Rounded up" means that the page size is rounded up to the next size supported by the file version. For example, 512 is rounded up to 1024, 2560 is rounded up to 4096, and so forth.
3While a 9.5 format or later file can have more than 119 segments, the number of indexes is limited to 119.
See status codes 26: The number of keys specified is invalid and 29: The key length is invalid for related information about index segments and the MicroKernel Engine.
See also Choosing a Page Size and Segmentation in Zen Programmer’s Guide.
6009: Index Name Duplicate
The index name is already being used a column. Use a unique index name. See Naming Conventions in Zen Programmer’s Guide.
7000 to 7050
Distributed Tuning Interface Status Codes
This section lists the status codes you can receive when using the Distributed Tuning Interface. See Btrieve API Guide for more information on this interface.
7001: Invalid connection handle specified
Specify a valid connection handle with the API call.
7002: NULL pointer specified
Specify a valid pointer with the API call.
7003: Buffer was too small
Increase the buffer size. Some APIs report the required size in an out parameter.
7004: A general failure occurred
This error can be returned in the following situations:
You do not have the necessary permissions to perform the operation.
The engine on the target machine is not started.
The engine on the target machine is not accessible from the application location, possibly because a firewall is blocking port 3351 used by Btrieve and DTI. In this case, opening firewall access to this port resolves the issue.
7005: Invalid data type specified
Specify a valid data type for the operation.
7006: Setting value is out of range
Check the valid range for the setting in the configuration reference topic in Advanced Operations Guide.
7007: At least one selection item is invalid
Check the list of selection items to ensure all are valid selections. You can find the valid values in the configuration reference topic in Advanced Operations Guide.
7008: Invalid sequence number
Specify a valid sequence number for the operation.
7009: Data on open files is not available
Data related to open files is not currently available.
7010: Client ID is invalid
The client ID needed for this operation is invalid. Specify a valid client ID.
7011: Insufficient access rights
You have insufficient access rights to perform the operation requested. Many DTI functions require administrative rights on the server. See Btrieve API Guide for more information on rights required for DTI operations.
7012: Named database already exists
The named database you are trying to add already exists. Specify a unique name for the named database.
7013: Named database does not exist
The requested named database does not exist. Specify a valid named database.
7014: DTI not initialized
Before you can use DTI functions, you must first initialize DTI by calling the PvStart() function. Then you can invoke DTI operations. When finished, use PvStop() to terminate the DTI session. See Btrieve API Guide for more information.
7015: File not open
The operation you requested requires an open file.
7016: Dictionary files already exist
Dictionary files for the specified database already exist.
7017: Dictionary path in use
Another process has the dictionary files in use. Close all other running applications and retry the operation.
7018: Invalid DSN name
The DSN you are trying to create contains invalid characters or is too long. DSN names cannot be longer than 20 characters and cannot contain the following symbols: []{}() ?*=!@,;
7019: DSN already exists
The DSN you are trying to create already exists. Specify a different name for the DSN.
7020: Specified DSN does not exist
The DSN you are trying to locate does not exist. Specify a valid DSN name.
7021: Invalid open mode for DSN
Specify a valid open mode. For information, see DSN Open Mode in ODBC Guide.
7022: Component not loaded
A component needed for DTI is not loaded. Try restarting your Zen engines.
7023: The database files cannot be deleted because they are shared with another database
You receive this status when trying to delete a database that shares DDF files with another database.
7024: Invalid Btrieve Security Policy
When creating a database, an invalid Btrieve Security Policy was specified. Specify one of the following:
PSQL_DB_POLICY_CLASSIC
PSQL_DB_POLICY_MIXED
PSQL_DB_POLICY_DBSEC
7025: Server name not found
The server you specified cannot be found. Check the server name and try again.
7026: Requester not loaded
The connection could not be established because the client requester is not loaded.
7027: Server table full
The connection could not be established because the internal server name table is full.
7028: Client connections limit exceeded
The number of client connections for DTI is limited to 100.
The connection could not be established because the limit on client connections has been reached.
7029: Permissions Error
The connection could not be established because DTI encountered a permissions error. Check your username and password and try again.
7030: Out of memory
The connection could not be established due to lack of memory resources.
7031: No transport is available
No remote connection could be established. Check your network configuration.
7032: Connection failure
The connection could not be established due to an unknown reason.
7033: Connection was lost
The remote connection to the server was lost. If this error persists, check your network configuration.
7034: Database name is too long
The database name you specified exceeds the length limit. In Advanced Operations Guide, see Zen Databases for information on valid database names.
7035: Insufficient number of data paths
When copying a database, you specified a smaller number of data paths than the original database contained.
7036: File name already exists
The file name you specified already exists. Choose a unique file name for the operation.
7037: Password is invalid
The password you specified for the operation is not valid.
7038: Destination data path is invalid
The path specified as the destination could not be found. Verify the path you provided to the API.
7039: Dictionary path is invalid
The path specified for dictionaries could not be found. Verify the path you provided to the API.
On Linux, this error can result if you try to create a database with Zen Control Center and the owner of the directory is not zen-svc. Ensure that the owner of the directory where you want to create the database is zen-svc. Use the chown command to change ownership. For example, chown zen-svc directoryname.
7040: Filter option is invalid
A parameter passed to DTI was invalid. See the DTI documentation in Btrieve API Guide for the valid options.
7041: Cannot perform operation because database entries in FILE.DDF contain absolute paths
You cannot perform the requested function because the database contains absolute paths in FILE.DDF. To resolve this issue, remove the absolute paths from the database and try again.
7042: Bound database requires data dictionary files
The creation of a bound database requires data dictionary files (DDFs). For a bound database, ensure that the CREATE DATABASE statement or the Create New Database wizard also specifies the creation of dictionary files.
7043: Invalid character sent by client
One or more characters sent by the client in a DTI function argument string are invalid and cannot be translated to the server’s encoding. Verify the function arguments.
7044: Invalid character received by client
One or more characters received from the server in a DTI function argument string are invalid and cannot be translated to the client’s operating system encoding. It may be necessary to use a different client machine.
7045: Internal buffer too small
The internal buffer is too small to process a DTI argument. One possible workaround is to use shorter arguments.
7046: Invalid encoding translation option
The translation option in the DTI function PvCreateDSN2() or PvModifyDSN2() specifies an invalid encoding. For the valid options, see the translate argument for these functions in Distributed Tuning Interface Guide.
7047: Invalid code page for database
The code page specified for the database is invalid (not supported by the database engine). Verify the code page and use one supported by the database engine. The code pages supported can be viewed from the Create Database dialog in Zen Control Center. See New Database GUI Reference in Zen User’s Guide.
7048: Invalid operation
An API is being used that is not supported for this platform.
7049: Cannot create DDFs due to metadata version mismatch with existing DDFs in the location provided
This error occurs when you try to create a new database whose metadata version differs from that of an existing database in the directory location you have chosen. The workaround is to make the metadata versions the same or to choose a different location.
7064 to 7140
License Administrator Status Codes
This section lists the status codes you can receive when using the License Administrator.
7064: No license obtained for the product
A session tried to release a license (for user count, session count, or data in use) but the session either had not acquired a license from the server or had acquired a license for a different product.
7065: A product has not been obtained
An application attempted to obtain the license (for user count, session count, or data in use) for a product, but no license has been authorized. Ensure that a license has been authorized for the product before attempting to obtain the license information.
7101: Invalid character in the license string
The license key you attempted to authorize contains one or more invalid characters. All alphanumeric characters (upper or lower case) are permitted except for “i” and “o.” Lower case letters are automatically converted to upper case.
Correct any invalid characters in the license key and authorize the key again.
7102: Illegal license type is defined
The license key an application attempted to authorize is not valid because the Product Type is invalid. The permissible types are permanent and temporary, and increase licenses for user count, session count, or data in use.
Ensure that you have a valid license key issued by Actian Corporation or by your application vendor if the database engine is embedded in an application.
7108: License key length is too long
The length of the license key you attempted to authorize exceeds the maximum length allowed for a key (30 characters). Ensure that the license key contains 30 characters.
7109: No such license exists
The license key you are trying to deauthorize does not exist. The license key may have already been deauthorized.
If you are using the License Administrator GUI to deauthorize the key, press F5 to redisplay the list of authorized licenses. Check the refreshed list for the license key you were trying to deauthorize. If the license key still appears to exist, exit, then restart License Administrator.
7110: Only temporary licenses are installed on the system and all of them have expired
All of the installed licenses are temporary ones that have expired. The values for user count, session count, or data in use no longer apply. You need to install a valid license, temporary or permanent, to provide new values for user count, session count, or data in use.
7111: Temporary licenses cannot be deauthorized. The license becomes invalid after its expiration date.
You have attempted to deauthorize a temporary license. Temporary licenses cannot be deauthorized; they become invalid after their expiration date. Verify that the license you want to deauthorize is a type that can be removed.
7112: License is already installed
The license key you are attempting to authorize has already been authorized. You cannot reauthorize a license once it has been authorized unless you deauthorize it first. Temporary licenses cannot be deauthorized.
If you are using the License Administrator GUI to authorize the license, press F5 to redisplay the list of licenses. Check the refreshed list for the license you were trying to authorize. If the license still does not appear in the list, exit, then restart License Administrator.
7113: Invalid license key. Verify the provided key
The license key you attempted to authorize is not a valid license. Ensure that you have a valid license key issued by Actian Corporation or by your application vendor if the database engine is embedded in an application.
This status code is also displayed if your key is for a specific platform that does not match the platform on which you are attempting to authorize the license. For example, if your license key is for “Win64,” you cannot authorize the license for a Windows 32-bit operating system or on a Linux platform.
If you are using the License Administrator GUI to authorize the key, repaste or retype the key in the Key field, then click the button to authorize the key.
Special consideration for telephone authorization
If your machine configuration changes between the generating of the authorization request code and the receipt of your authorization key data string, then this status code can indicate that the authorization key data string no longer matches your machine, even though the product key itself is valid. In this case, you have two options:
Return your machine to its previous configuration, then attempt to authorize your license key again.
or
Follow these steps:
1. Rerun the Phone Authorization Wizard or the Command Line Phone Authorization Utility.
2. Contact Actian Support with your original product key and the resulting new authorization request code.
3. Obtain a new authorization key data string for your changed machine configuration.
4. Use the new authorization key data string with your license key.
7115: Invalid product ID
The license key you attempted to authorize is not a valid license because the product name in the key is not recognized. On possibility is that the key is for a newer version of Zen than the one you are trying to authorize.
7116: Buffer overflow
The buffer assigned for the DTI function or DTO method is too small. Increase the size of the buffer. See the applicable function in Distributed Tuning Interface Guide or to the applicable method in Distributed Tuning Objects Guide.
7117: License key is too long
The length of the license key you attempted to authorize exceeds the maximum length allowed for a key (30 characters). Ensure that the license key contains 30 characters.
7118: The server is not running. Unable to show, authorize, or deauthorize a license. Verify that the server is running and that network communications are functioning.
License Administrator is unable to connect to the remote server. This could indicate the following:
You may have started the License Administrator on a client where a database engine is not installed. Click OK to establish a connection to a server.
The server is not running. If needed, follow the steps under Verifying Database Engine is Running in Getting Started with Zen.
Network communications are preventing connection to the server. Use the ping command to the server to verify that network communications are working.
7119: The local server is not running. Unable to show, authorize, or deauthorize a license.
License Administrator is unable to connect to the database engine on the local machine where License Administrator is running. Ensure that a database engine is installed and running on the local machine. Follow the steps in Verifying Database Engine is Running in Getting Started with Zen.
7120: The license cannot be deauthorized
The license or licenses you are attempting to deauthorize cannot be deauthorized. Temporary licenses cannot be deauthorized. They become invalid after their expiration date.
Verify that the license is a type that can be deauthorized.
7122: Your trial license has expired
The temporary trial license you are attempting to authorize has expired, and one of the following is true:
No other licenses are authorized.
Other licenses are authorized but no longer valid. All installed temporary licenses, for example, have expired.
The Zen product cannot be installed without a valid license. Click Continue if you have a valid license to authorize. If you need an additional trial period, you can request a new trial license from Actian Corporation.
7124: An increase key for user count, session count, or data in use must have a vendor ID that matches the vendor ID of an authorized permanent key
An authorized permanent key is required before an increase key can be authorized. The software vendor ID number for an increase key must match the vendor ID number for an authorized permanent key. Increase keys obtained from Actian Corporation are universal. That is, they are compatible with any permanent key from any vendor.
Ensure that you have a valid permanent key authorized before authorizing an increase key. Also ensure that the vendor ID numbers match if the increase key was obtained from a vendor, or use an increase key obtained from Actian Corporation. Vendor ID numbers can be verified with the License Administrator tool. See License Administration in Zen User’s Guide.
7125: An active permanent license already exists
The machine on which you are attempting to authorize a permanent license key already contains a permanent license key from the same vendor in the “active” state. You may not authorize more than one active permanent license key from the same vendor.
If a permanent license key has already been authorized from a vendor and is active, you may only authorize an increase for user count, session count, or data in use. Deauthorize the existing license key and then authorize the new permanent license key.
You may authorize another permanent key from the same vendor to the same machine if the existing permanent key is in a “failed validation” or a “disabled” state. That is, the existing permanent key is not active. If another permanent key is authorized while an existing key is in the “failed validation” state, the existing key changes state to “disabled.” The other permanent key then becomes the active key.
7126: Cannot increase the value beyond the maximum limit for user count, session count, or data in use
The license increase you are attempting to authorize would increase the value beyond the maximum limit for user count, session count, or data in use. You cannot increase the value beyond the maximum limit allowed by your license agreement.
7127: This key or a related key requires deauthorization. This version of the client cannot deauthorize a key.
The key or a related key you are trying to deauthorize requires that you have PSQL v10.13 or later installed. Upgrade to PSQL v10.13 or later and use the License Administrator utility to deauthorize the key.
7130: The Zen product version for this key does not match the installed Zen engine
The Zen product version associated with the key you are trying to authorize does not match the Zen product currently installed.
Make sure that the key you are using is correct and that you have the correct Zen product installed.
7131: The OS platform for this key does not match the installed Zen engine
The operating system associated with the key you are trying to authorize does not match the Zen product currently installed.
Make sure that the key you are using is correct and that you have the correct Zen product installed.
7132: The Zen engine type for this key does not match the installed Zen engine
The type of Zen database engine indicated by the key you are using to authorize does not match the engine installed.
7133: An associated UCI key is preventing the deauthorization of the permanent key. The UCI key may already be in the failed or disabled state, or it may be set to transition into the failed state the next time it is validated. Repair the UCI key and try again to deauthorize the permanent key.
An authorized permanent key cannot be deauthorized because of its associated user count increase key. The user count increase key is in a Failed Validation or Disabled state or will move into a Failed Validation state during the next validation.
First, determine why there is a problem with the UCI key. Fix the problem and validate the UCI key. After that, reattempt the deauthorization of the authorized permanent key.
7140: The operation is not supported on this version of the engine.
Some Zen editions carry restrictions for certain features, such as licensing. For more information, contact Actian Support.
7200 to 7499
Authorization Status Codes
This section lists the status codes you can receive when authorizing your product.
7201: An error in one of the authorization libraries prevents further processing
One of the authorization libraries has produced an error that prevents further processing.
Try restarting the services or reinstalling Zen and try authorization again. If this error persists, check the log file to determine the library name reported and contact Actian Support.
7212: Invalid product key for authorization
The product key specified is invalid. Type, or paste, a valid product key and try to authorize the key again.
7213: Product key does not pass checksum validation for authorization
The product key appears to be a valid key, but failed to pass a checksum validation. A common reason is that the key was typed incorrectly. Another possibility is that a transmission error prevented the checksum validation.
Ensure that a valid product key is specified and try again to authorize the key.
7215: Unable to determine machine ID. Verify you are logged on with administrator permissions and retry.
The system encountered an error while trying to calculate the machine ID for the current session.
Ensure that you are logged on as an Administrator with full access rights and try authorizing or deauthorizing the key again. If you are using Windows Vista or later Windows operating systems, turn off UAC. If you are authorizing or deauthorizing the key remotely, try the operation locally.
7218: Debug entry logged pertaining to acquiring the machine configuration
The system encountered difficulty while trying to acquire the machine configuration and has logged information to the Zen logging repositories.
Ensure that you are logged on to the operating system as an Administrator with full access rights and try again to authorize or deauthorize the key. If you are using Windows Vista or later operating system, turn off UAC. If you are trying to authorize or deauthorize a key remotely, try the operation locally.
If you encounter this situation in a Windows operating system, ensure that WMI is working properly because it is the utility that acquires the machine configuration.
If you encounter this situation on a Linux operating system, ensure that the dmidecode utility is installed on the system and restart the Zen daemon.
7221: Authorizing or deauthorizing a key requires database engine to be running
The Zen database engine must be running before you can authorize or deauthorize a key. See Starting and Stopping the Database Engine in Zen User’s Guide for details.
7222: DTI call could not be completed or there is a problem connecting to the engine
The authorization call to DTI could not be completed or there is a problem connecting to the engine.
Try restarting the engine or services and try authorization again. If the problem persists, try reinstalling Zen and try authorization again.
7223: DTI returned invalid license string
The string returned during authorization was empty or invalid.
Make sure that the database engine is running and try authorization again.
7224: User lacks the appropriate rights to authorize or deauthorize a key
The target engine tests for appropriate permissions prior to authorizing or deauthorizing a key. Target engine testing failed due to inappropriate permissions.
Ensure that you are logged on as a user with Administrator permissions and try again to authorize or deauthorize the key. If you are using Windows Vista or later Windows operating systems, temporarily turn off UAC.
If authorizing on Terminal Services, ensure that the setting for “Restrict Administrative Functions from a WTS Client” is off. In ZenCC, open the properties for the MicroKernel Router under Local Client. On the Properties dialog, ensure that the option “Restrict Administrative Functions from a WTS Client” is not selected.
This error can also be seen if you are running the Zen Workgroup engine as an application on Windows Vista or later Windows operating systems and not running as an Administrator. Try closing the Workgroup engine and then restarting zenengnapp.exe using the Run as administrator option. Another option is to uninstall the Workgroup engine and reinstall it to run as a service.
7226: Deauthorizing a key requires an authorized key
Deauthorizing cannot occur because no key is available. A product key must be authorized before it can be deauthorized. Ensure that the product key you want to deauthorized has been authorized. The key may have been removed without first being deleted.
With License Administrator, verify the key that you want to deauthorize. See To Refresh the License Information List and To Display License Information, both in Zen User’s Guide. Try the deauthorization again and specify a valid key.
7235: Product authorization is not supported on this version of Zen
This version of Zen does not support authorization. Try authorization from a machine running PSQL v10.13 or later.
7239: Internet connection cannot access authorization server
The Internet connection cannot access the authorization server to obtain data needed for key validation.
Possible causes include, but are not limited to, the following:
A network problem is preventing connection to the authorization server.
In your local system registry, authorization server information may be corrupt or missing.
Security issues, such as firewall protection, are preventing connection to the authorization server. Configure your firewall or proxy server to allow access to elspv.actian.com and bkpelspv.actian.com. Additional details can be found in the community knowledge base by searching for “firewall proxy server” and then in the search results finding the article “How to Check or Detect Licensing Issues.”
The authorization server is down. To confirm, open elspv.actian.com in a browser. If the server is running, it returns a message resembling “ELS WEB SITE AMS11 version 1.5.3 Build 73 - 13.0.0.1.”
If these explanations and solutions do not address your problem, contact Actian Support.
7241: Authorization service support files not found
This status code applies only to Linux. The service files that process the Internet authorization and deauthorization processes were not found.
Verify that the web service file elsdid is located in /usr/local/actianzen/bin and that the file has execution permissions. Try restarting the services or reinstalling Zen and attempting authorization again.
7252: Authorization key is invalid for the target machine
The authorization key data entered is not valid for the target machine. The key may have been malformed during the offline authorization process.
Try entering the authorization key data again or try offline authorization again.
7254: Key cannot be authorized because it contains invalid license data. Contact your product key vendor.
A failure occurred during authorization of the key. Contact your product key vendor for assistance with troubleshooting.
7260: The offline data does not pass validation
The offline data failed to pass an internal checksum validation. A transmission error may have prevented the checksum validation. Try performing offline authorization again.
7261: Error encountered while saving the offline authorization request data file
An internal error occurred while saving the offline file of authorization request data. Make sure that the directory has appropriate permissions and the target folder exists. Try saving the offline file again.
7262: Error encountered while loading the offline authorization key data file
An internal error occurred while loading the offline file of authorization key data. Make sure that the directory has appropriate permissions and the target folder exists. Try loading the offline file again.
7264: Product key is invalid
The product key entered is invalid. Type or paste a valid product key and try again.
7265: Authorization of the authorization key data must be on the same machine where the authorization request data was generated
The target machine used for offline authorization is invalid. Make sure you are using the same machine for offline authorization as the machine on which you created the authorization request data file.
This status code can also be seen when the offline authorization utility licgetauth.exe is run on a Vista or later Windows OS machine without administrator privileges. To avoid this problem, run the utility from a command prompt window using the Run as an Administrator option.
7267: This stage of the offline authorization is invalid or inconsistent with the requested offline operation
The offline file is not consistent with the offline operation. Try starting the offline authorization from the beginning.
7268: Offline authorization must be performed locally
Offline authorization cannot be performed remotely. Perform offline authorization using a machine with a local Internet connection.
7269: An internal error occurred while trying to process the offline operation on the local machine
During offline authorization an internal error prevented processing. Try offline authorization again.
7300: Local licensing component incompatible with remote licensing server
The licensing component on the local machine is incompatible with the remote licensing server. An older version of the licensing component on the local machine can result in this status code being returned. Contact the product key vendor for a compatible version of the local licensing component.
7305: Product key not found in authorization database
The product key appears to be valid and has a valid checksum but cannot be found in the authorization database on the remote authorization server. Ensure that the product key is valid. If it is, and this problem persists, contact Actian Support.
7306: Product key is not in a valid state
The system is unable to decrypt the key because the key state is invalid. This error can occur if the system is unable to decrypt the key provided, or if after the key was decrypted the key no longer matches the key’s profile.
Make sure that the key you are using is correct or try using a new key. Contact Actian Support to report this situation.
7310: Product key has been disabled in the authorization database
The product key specified has been disabled in the authorization database on the remote licensing server. A product key may be disabled for various reasons. Contact Zen Support.
7311: Product Key is not a valid length
The product key entered is not the correct length. Product keys are either 25 or 30 characters in length, depending on the version of Zen you are authorizing. Type or paste a valid product key and try again.
7313: Product key is already used on a different machine
The product key has already been authorized on a different machine. First deauthorize the product key on the old machine, then try to authorize the key again on the new machine.
This status code can also result when you try to deauthorize a key on the machine where the key resides. A common cause is that changes to the hardware signature from when the key was authorized now prevent its deauthorization. In that case, repair the key.
7314: This key cannot be deauthorized because it was authorized on a machine with a different machine signature. Either it is being used on a different machine or, more likely, the hardware signature of the original machine has changed. If you are cloning or copying a key licensed for use on only one machine, please purchase another valid license key. Otherwise, repair the key, then try again to deauthorize it.
The signature of the machine on which the key was originally authorized does not match the signature of the machine on which you are attempting to deauthorize the key. This happens in two situations: when a key is copied to another machine and when, due to hardware updates, a machine signature changes. In the first case, you need to purchase an additional permanent key. In the second case, you need to repair the key. After the correct action, reattempt the deauthorization.
7315: Product key is already used on this machine
The product key has already been authorized on the machine. Authorization is not required because it has already been performed.
A key can be on the machine but not in the authorization database on the remote licensing server. If so, clear the key on the machine using the -clear option with the clilcadm utility, then authorize the key. See License Administrator Command Line Interface in Zen User’s Guide.
7317: Deauthorizing a key requires an authorized key
Deauthorization cannot occur because no key is available. A product key must be authorized before it can be deauthorized. Ensure that the product key you want to deauthorize has been authorized. The key may have been removed without first being deleted.
With License Administrator, verify the key that you want to deauthorize. See To Refresh the License Information List and To Display License Information, both in Zen User’s Guide. Try the deauthorization again and specify a valid key.
7334: Key has no machine signature associated with it
The authorization database on the remote licensing server lists no machine associated with the key. This situation can happen if you copy a VM image that includes a key already authorized, then you deauthorize the key on the original image and attempt to deauthorize the key on the copied VM image.
To prevent this status code, deauthorize the key before you copy the VM image. To remove a key on the copied VM image, clear the key using the CLI License Administrator. The “clear” option removes the key from the local machine without deauthorizing it. After you clear the key, authorize it on the copied VM image.
7335: Operation is not allowed on a Multimachine Key
The operation attempted is not allowed on keys designated as Multimachine. Make certain you are using the correct key with the correct action.
7336: Authorization server prohibits authorization from within a Virtual Machine session
In most circumstances, it is possible to authorize from within a virtual machine session. The only time this error message can appear is if the product key being authorized dates from the early PSQL v10 product line. If it appears, contact your product key vendor or try the authorization again outside of a virtual machine session.
7338: Authorization not allowed in debug mode
The product key cannot be authorized from within a software debugger. Exit the debugger and try the authorization again.
7340: Product key cannot be authorized because the maximum usage count has been reached. Contact your product key vendor.
The product key has already been authorized the maximum number of times allowed by the usage count.
A usage count allows you to authorize a product key again in the event of unforeseen circumstances on a particular machine. For example, if you had to replace the storage disk, you would have to reinstall the product and authorize the product key again on the same machine.
7341: Product key cannot be authorized because the maximum number of authorizations has been reached. Contact your product key vendor.
The product key has already been authorized the maximum number of times allowed.
Product keys have limited number of times they can be authorized and deauthorized. Contact your product key vendor if you need to authorize the product key again.
7342: Product key cannot be deauthorized because the maximum number of deauthorizations has been reached. Contact your product key vendor.
The product key has already been deauthorized the maximum number of times allowed. Product keys have limited number of times they can be authorized and deauthorized. Contact your product key vendor if you need to deauthorize the product key again.
7343: Product key cannot be repaired because the maximum number of repairs has been reached. Contact your product key vendor.
The product key has already been repaired the maximum number of times allowed.
Product keys have limited number of repairs allowed. Contact your product key vendor if you need to repair the product key again.
7346: Product key has been authorized on the maximum number of machines allowed. Contact your product key vendor.
The product key you are trying to authorize has already been authorized on the maximum number of machines allowed for the product purchased.
Deauthorize the key on one of the machines where the key has already been authorized before you try to authorize the product and use this key or contact your vendor to purchase additional licenses.
7347: Maximum number of offline authorizations has been reached. Contact your product key vendor.
The maximum number of offline authorizations allowed for the product key has been met.
Product keys have limited number of offline authorizations allowed. Contact your product key vendor if you need more offline authorizations.
7348: Temporary License key cannot be deauthorized
Temporary (non-removable) license keys may be authorized only once and cannot be deauthorized.
7349: Temporary License key has already been authorized
The temporary license has already been authorized and cannot be authorized again.
You are allowed to authorize a temporary license key once. A temporary license cannot be added to a machine that already uses it.
7365: Record changes were blocked due to multi-user access
Changes to the target record were not committed because of multi-user access. Refresh, verify the record, then resubmit your changes.
7366: Authorization server is busy
The authorization server is currently busy. Please try authorizing again later.
Tip...  For troubleshooting tips see the knowledge base on the Actian website and search for “product authorization.”
7367: Multi-user access is preventing the operation from being completed
The requested operation cannot be completed due to multiple user access conflicts. Wait a few moments and try the operation again.
7369: The server is currently unavailable. Please try again later.
The requested server is inaccessible at this time. Try accessing the server again in 20-30 minutes.
7380: The Country or City is in the embargo list
The system detected an IP address from a country or city that is on the restricted embargo list. Please contact Actian Support if you feel you reached this message in error.
7422: Login failed. The user credentials are invalid.
The credentials for the user are not recognized. Check the user credentials and try logging in again.
7423: Permission for requested operation has been denied
The current user does not have permission for the requested operation. Try logging in as a user with appropriate permissions, or request appropriate permission.
7424: User account is inactive
The requested user account is inactive. The user account needs to be authorized, or an active user account needs to be selected.
7449: Key cannot be set to active because of a pending issue with the key vendor. Contact your product key vendor.
The license data prevents this key from entering the active state. Contact your product key vendor.
7450: OEM ID does not exist
The OEM ID no longer exists. Select another OEM ID to use, or contact Actian Support for assistance.
7451: OEM account is inactive
The account for the OEM is no longer active. Select an active OEM account, or contact Actian Support for assistance.
7452: OEM user is inactive
The OEM user is no longer active. Select an active OEM user to use, or contact Actian Support for assistance.
7456: Invalid OEM user ID for the requested record
The record you are trying to access has a different OEM user ID associated with it than the OEM user ID currently logged in. Make sure that you are accessing the correct record, or that the OEM user ID logged in is correct.
7457: OEM product (Workgroup/Server) is not an authorized product
Products are authorized to OEMs based on their contractual agreement with Actian Corporation. The requested product is not authorized for the current OEM. Select an authorized product to continue.
7458: Maximum number of resets or repairs for the product key has been reached
The maximum number of operations (resets or repairs) for the product key has been met. Product keys have limited number of resets and repairs allowed. Contact your product key vendor if you need to perform one of these operations again.
7471: Maximum number of seats for this OEM has been reached
The maximum number of seats for the OEM has been met.
OEM accounts have a limited number of seats based on their contract with Actian Corporation. Contact Actian Support if you need to add seats to the OEM contract.
7472: Maximum number of licenses for this OEM has been reached
The maximum number of licenses for the OEM has been met.
OEM accounts have a limited number of licenses based on their contract with Actian Corporation. Contact Actian Support if you need to add licenses to the OEM contract.
7473: Maximum number of seats for this OEM account has been reached
The total maximum number of seats has been met. Accounts within an OEM have a limited number of seats based on their contract with Actian Corporation. Contact Actian Support if you need to add seats to the account.
7474: Maximum number of licenses for this OEM account has been reached
The total maximum number of licenses has been met.
Accounts within an OEM have a limited number of licenses based on their contract with Actian Corporation. Contact Actian Support if you need to add seats to the account.
7475: Invalid value for user count, session count, or data in use
The requested value is either not defined or is greater than the maximum limit currently available.
7477: The OS Platform type is invalid for this account
The operating system requested for the product key is invalid for the current account. Make sure that you are using the correct account and select a valid operating system.
7478: Product type is invalid for this account
The product type requested for the product key is invalid for the current account. Make sure that you are using the correct account and select a valid product type.
7479: Upgrade type is invalid for this account
The product type requested for the product key is invalid for the current account. Make sure that you are using the correct account and select a valid product type.
8000 to 8499
Component Management Status Codes
These status codes originate from the Component Management and Event Logging interface of the MicroKernel.
8005: Interface not initialized
An interface was not initialized properly. Check the Zen event log, the file named zen.log, for more information.
8006: The specified component was not found
The component could not be found. Check the Zen event log, the file named zen.log, for more information.
8020: Error loading component
You receive this status code when one of the following occurs:
The Services DLL received an operating system error when trying to load a component.
A space was used in the Data Source Name (DSN) or Database Name (DBN).
For locations of Zen files, see Where are the files installed? in Getting Started with Zen.
8022: Component not initialized
While using a multi threaded application, one thread shut down a component and other threads continue trying to use it.
8097: General security error
This status code indicates that a general error occurred when checking or setting database security. The database engine was unable to associate the error with a more specific status code. If the error persists, contact Actian Support.
8500 to 8589
ECAS Interface Status Codes
This section describes the status codes returned by the Enhanced Common Address Space (ECAS) interface. Most of the errors are system errors and write an entry in the Zen event log, zen.log. In many cases when you receive these errors, there may be some instability in the environment or memory allocation and you will need to restart the machine.
8500: An error occurred during the components initialization
In its attempt to auto-load the Workgroup engine, the application failed to initialize the component library. You may get more information about the situation that caused this error by setting the environment variable PVSW_DISP_LOAD_ERRS=AIF, and running the application again. This setting enables the Services DLL to display on-screen module load errors. However, this environment variable should only be set to diagnose module load errors. In all other cases, it should not be set.
8502: An error occurred when trying to locate W3UPIXYY.DLL
In its attempt to auto-load the Workgroup engine, the application failed to locate or load W3UPIXYY.DLL.
8503: An invalid W3UPIXYY.DLL has been found
In its attempt to automatically load the Workgroup engine, the application discovered an incorrect version of W3UPIXYY.DLL. This problem may be caused by a corrupt version of W3UPIXYY.DLL.
8504: An error occurred when trying to create system semaphore
In its attempt to auto-load the Workgroup engine, the application failed to create the system semaphore. This problem may have been caused by the operating system running out of resources.
8505: An initialization error occurred when trying to establish a session with the Zen engine
In its attempt to automatically load the Workgroup engine, the application failed to establish the session with the engine. This is a system error.
Some customers who have only server engines in their environment have reported frequent pairs of status codes 8505 and 8517 and in the zen.log file on one or more client workstations. The most likely cause is that your workstation client is configured to connect to a local Workgroup engine when one is not installed.
Note:  If you are not certain whether your environment includes Workgroup engines, please check with your administrator. The procedure below disables access to your local Workgroup engine.
To prevent the client from attempting this connection, follow these steps:
1. In ZenCC, expand Local Client.
2. Right-click MicroKernel Router and select Properties. Log in if prompted.
3. Click Access.
4. In the right hand frame, change the value of Use Local MicroKernel Engine to Off.
5. Restart the engines for the new settings to take effect.
8506: A fatal error occurred when loading the MicroKernel
In its attempt to auto-load the Workgroup engine, the application failed to load the MicroKernel, W3MKDE.DLL. This may have been caused by a missing W3MKDE.DLL.
8507: No valid session was found
The application lost its session with the Workgroup engine.
8508: An error occurred when attempting to enable Btrieve access
The application failed to enable the Btrieve access method in the Workgroup engine.
8509: A timeout occurred during the initialization of the MicroKernel
The application timed out during the initialization of the MicroKernel. This may have been caused by a bad configuration option or a malfunction of the Workgroup engine.
Check the Zen event log (zen.log) for more information.
8510: A fatal error occurred when loading the Scalable SQL engine
This status code became obsolete in Pervasive.SQL 2000.
In its attempt to auto-load the Workgroup engine, the application failed to load the Scalable SQL, W3SSQL.DLL. This may have been caused by a missing W3SSQL.DLL.
8511: An error occurred when attempting to enable SQL access
The application failed to enable the SQL access method in the Workgroup engine.
8512: A timeout occurred during the initialization of the Scalable SQL engine
This status code became obsolete in Pervasive.SQL 2000.
The application timed out during the initialization of the Scalable SQL engine. This may have been caused by an invalid configuration option or a malfunction of the Workgroup engine.
8513: An error occurred when disabling Btrieve access
The application failed to disable the Btrieve access method in the Workgroup engine.
8514: An error occurred when unloading the MicroKernel
The application failed to unload the MicroKernel.
8515: An error occurred when disabling SQL access
The application failed to disable the SQL access method.
8516: An error occurred when unloading the Scalable SQL engine
This status code became obsolete in Pervasive.SQL 2000.
The application failed to unload Scalable SQL.
8517: An error occurred when closing the session with the Zen engine
The application could not close the session with the Workgroup engine.
Some customers who have only server engines in their environment have reported frequent pairs of status code 8505 and 8517 in the zen.log file on one or more client workstations. The most likely cause is that your workstation client is configured to connect to a local Workgroup engine when one is not installed.
Note:  If you are not certain whether your environment includes Workgroup engines, please check with your administrator. The procedure below disables access to your local Workgroup engine.
To prevent the client from attempting this connection, follow these steps:
1. In ZenCC, expand Local Client.
2. Right-click MicroKernel Router and select Properties. Log in if prompted.
3. Click Access.
4. In the right hand frame, change the value of Use Local MicroKernel Engine to Off.
5. Restart the engines for the new settings to take effect.
8518: An error occurred when attempting to allocate system memory
The application failed to allocate memory from the system. Possible ways to avoid this include closing all other applications and restarting the engine, decreasing the size of the cache, and changing the engine settings so that a smaller number of files and/or file handles are open.
8519: A fatal error occurred when loading the SRDE
In its attempt to auto-load the Relational Engine, the application failed to load the file, W3ODBCEI.DLL. This may have been caused by a missing W3ODBCEI.DLL.
8520: A timeout occurred during the initialization of the SRDE module
The application timed out during the initialization of the Relational Engine module. This may have been caused by a bad engine configuration option or a malfunction of the Workgroup Engine.
8521: An error occurred when unloading the SRDE module
The application failed to unload the Relational Engine module.
8590 to 8599
Database Engine Service Status Codes
This section describes the status codes returned by the database engine service. These errors are in the range 8590 to 8599 and cause an entry in the event log. In many cases when you receive these errors, there may be some instability in the environment or memory allocation and you will need to restart the machine.
8590: An error occurred in the database manager while initializing Components Manager
This error occurs when the database engine service fails to initialize the component library. You may also get more information about the problem that caused this error by setting the environment variable PVSW_DISP_LOAD_ERRS=AIF, and running the application again. This setting enables the Services DLL to display on-screen module load errors. However, this environment variable should only be set to diagnose module load errors. In all other cases, it should not be set.
8591: The database manager is already loaded
In its attempt to initialize, the Workgroup engine detected that another copy of the Workgroup engine is already running in memory. To avoid this error, shut down the program already running in one of the following ways:
If the program is automatically loaded by an application, then terminate the application.
If the application is automatically loaded, then shut it down using the icon in the Windows notification area.
8592: Insufficient memory to load the database manager
This error indicates that the system is out of resources. Close some applications and try again.
8593: An error occurred while the database manager was creating a system thread
This error indicates that the system is out of resources. Close some of the applications and try again.
8594: Engine cannot be restarted
The Workgroup engine has been previously stopped while there were active applications and cannot be restarted. Close all current applications and try again. If you receive this code once more, you will need to restart the computer.
10000 to 10100
SQL Connection Manager Codes
This section lists status codes returned by the SQL Connection Manager.
10000 through 10064: You have been unexpectedly disconnected from the server
Restart your application, then access the data source again. Contact your system administrator if you continue to have problems.
10065: Connection attempt timed out
The SQL Connection Manager may be inactive or using a different transport protocol from the client.
Verify that the service is running. In Windows, open the Services control panel and look at the Actian Zen service. You can also check it in Zen Control Center.
Verify that the client and server are using the same communication protocols. Open ZenCC on the client and in Zen Explorer, right-click MicroKernel Router and select Properties and then Communication Protocols. Make sure the list of supported protocols is the same as that for the server. To check the server side, in Zen Explorer right-click the server name and select Properties and then Communication Protocols.
-1000 to -5300
Relational Engine Status Codes
This section lists status codes returned by the Relational Engine. Should you encounter an error code that is not listed in this section, be sure to record the steps taken to get the particular error you received and notify Actian Support.
-1003: Invalid API parameter
A parameter was passed to an invalid internal API.
-1011: Out of memory
This status code may be returned in if the engine tries to allocate memory and is unsuccessful.
Free up some resources and try again. Reduce the Cache Allocation Size and/or Max MicroKernel Memory Usage configuration settings; or exit other applications on the computer.
-1020: No more file handles
While trying to open a file, a handle was not returned. Close some of your open programs and files and try again.
-1024: File share violation
There was an attempt to open a file that is read only or the specified user does not have the proper rights to open the file. Record the steps taken to get this error and notify Actian Support.
-1026: Record size limit exceeded
The record length was larger than the maximum allowed and some data has been truncated. Record the steps taken to get this error and notify Actian Support.
-1032: File access denied
There was an attempt to open a file that is read only or the specified user does not have the proper rights to open the file. Record the steps taken to get this error and notify Actian Support.
-1040: Too many columns defined
The maximum number of columns that can be defined is 1600 in a select statement; and 1536 elsewhere. Reduce the number of columns to within a valid range and try again.
-1113: Too many active sessions
Starting with Pervasive.SQL 8, the number of sessions allowed is allocated dynamically.
Add additional memory, or close other applications on the computer where the database engine is installed, and try again.
For Windows 32-bit servers: the number of active sessions has reached the upper limit of your memory and cannot be increased.
-1206: Non-db file or corrupted db
The file specified is not a valid database name or the database is corrupt.
-1207: Database exclusively locked
There was an attempt to access a database that has been exclusively locked by another user. Wait until the user removes the exclusive lock before continuing.
-1250: Same column cannot be renamed and modified
You cannot rename a column and modify that column at the same time. For example, the following statement causes an error because column c1 is being renamed and modified at the same time: ALTER TABLE t1 (RENAME COLUMN c1 TO c2, MODIFY COLUMN c1 INT). However, the following statement is permissible because different columns are being renamed and modified: ALTER TABLE t1 (RENAME COLUMN c1 TO c2, MODIFY COLUMN c3 INT).
-1251: Multiple columns may not be renamed to the same name
When you rename multiple columns, each new name must be unique. You cannot rename two different columns to the same name. For example, the following statement causes an error because columns c1 and c3 cannot both be named c2: ALTER TABLE t1 (RENAME COLUMN c1 TO c2, RENAME COLUMN c3 TO c2).
-1252: Column may not be renamed multiple times
When you rename multiple columns, you can rename the same column only once. For example, the following statement causes an error because column c1 is being renamed twice: ALTER TABLE t1 (RENAME COLUMN c1 to c2, RENAME COLUMN column c1 to c3).
-1302: Table is exclusively locked
There was an attempt to access a table that has been exclusively locked by another user. Wait until the user removes the exclusive lock before continuing.
-1303: Table already exists
The name you specified for a table already exists in the dictionary. Select another name or remove the current table definition before trying again.
-1304: Table is in use, cannot perform operation
The requested operation cannot be performed because another user is accessing or modifying the table. Try the operation again.
-1305: No such table or object
The table or object your tried to access does not exist. Check for the correct name and path and try again.
-1309: No DDLs without exclusive lock
You must perform an exclusive lock on the desired database before using DDL statements.
-1312: View already exists
The name that you specified for a view already exists in the dictionary. Select another name or remove the current view definition and try the operation again.
-1313: Trigger already exists
The name that you specified for a trigger already exists in the dictionary. Select another name or remove the current view definition and try the operation again.
-1314: No such table exists
The name you specified for a table does not exists in the dictionary. Specify the name of an existing table and try the operation again.
-1315: No such view exists
The name you specified for a view does not exists in the dictionary. Specify the name of an existing view and try the operation again.
-1316: No such trigger exists
The name you specified for a trigger does not exists in the dictionary. Specify the name of an existing trigger and try the operation again.
-1317: No such index exists
The name you specified for an index does not exists in the dictionary. Specify the name of an existing index and try the operation again.
-1403: Duplicate index exists
You have attempted to define the same index more than once in this definition. Rewrite the statement so the index is defined only once.
In some cases, you may be reissuing a create index statement because you cannot tell if your first statement succeeded. If you receive this error code under such conditions, then you can proceed on the assumption that your first create index operation was successful.
-1404: No such index
You tried to access an index that does not exist. Check the name and path and try again.
-1504: Null not valid
Null is not a valid parameter in the operation performed.
-1507: No such column
The column specified does not exist. Specify a correct column name.
-1508: Field is already defined
The field specified for this table has already been defined.
-1513: Index column type not supported
You cannot create an index on column types BIT, LONGVARCHAR, or LONGVARBINARY. You must create the index using a different column type.
-1520: Key length is invalid
You cannot index a character column greater than 254 characters.
-1603: Currency not on a record
A query required a temporary table and there was no unique row identifier (index) to correlate the temporary table to the result set. Adding an index to the order by or group by column will often resolve this problem.
-1605: Illegal duplicate key
This status code is returned in the following situations:
An entry was made into one of the system tables to satisfy a request from the Relational Engine level to create a database element with the same name (column, table, constraint). You may receive this error if you just created a column or index, but you are not sure if it was created or not. If you receive this error under such conditions, then you can proceed on the assumption that your initial creation attempt was successful.
You attempted to add a unique index to a column which already contains non-unique values.
-1809: Permission denied
The user does not have the appropriate rights for that action. Check the user permissions and try again. If this problem persists, check with your system administrator.
-1810: You are not authorized to perform this operation
The user does not have the appropriate rights for that action. Check the user permissions and try again. If this problem persists, check with your system administrator.
This status code can also be returned when you try the following conditions:
To execute a trusted procedure without EXECUTE permission on the top-most trusted stored procedure.
To perform any operation on a trusted view without appropriate permission on the outer-most trusted view.
To execute a non-trusted procedure without EXECUTE permission on the top-most non-trusted stored procedure or on the referenced objects.
To perform any operation (SELECT, INSERT, UPDATE or DELETE) on a non-trusted view without appropriate permission on the view or on the referenced objects.
To create trusted objects as a non-Master user.
To GRANT or REVOKE permissions on a view or stored procedure as a non-Master user.
To drop an object without ALTER permission on the object.
-1902: Unable to log on. An invalid Username/Password may have been specified
An invalid username or password may have been specified. Check your password and try again. If you continue to have problems, check with your system administrator.
-1903: Invalid account name
Either a user with the specified user name or a group with the specified group name does not exist. Check your user/group name and try again. If you continue to have problems, check with your system administrator.
-1905: Invalid password
The password specified was not correct. Check your password and try again. If you continue to have problems, check with your system administrator.
-1907: Access denied
The user does not have the proper permissions to access the file.
-3001: User-defined functions with the same name already exist
You are trying to create a user-defined function (UDF) with the same name as an existing one. Modify the name of the UDF and execute the CREATE statement again.
-3002: The user-defined function name is invalid. User-defined function name can contain 1 to 30 characters
The length of a user-defined function (UDF) name must be at least one character and cannot exceed 30 characters. Modify the name of the UDF to fit within the name length restrictions.
-3003: Cannot insert into a COBOL data file. Invalid operation
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) You cannot perform an INSERT operation on such data files.
-3005: Cannot alter a COBOL fake table. Invalid operation
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) You cannot perform an ALTER TABLE operation on such data files.
-3006: Cannot create triggers on COBOL tables. Invalid operation
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) You cannot perform a CREATE TRIGGER operation on such data files.
-3007: Cannot create indexes on OCCURS/REDEFINES fields. Invalid operation
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) You cannot perform a CREATE INDEX operation on such data files.
-3008: A dependent OCCURS table entry exists. Drop this OCCURS table to drop the main table
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) If a main table contains any OCCURS layouts, you must delete the OCCURS tables before you can delete the main table.
-3009: There is a dependent REDEFINES table. Drop this REDEFINES table to drop the main table
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) If a main table contains any REDEFINES layouts, you must delete the REDEFINES tables before you can delete the main table.
-3010: An OCCURS table with a mapping index to this index exists. Cannot drop index
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) A main table can contain indexes to which an OCCURS table can map. If an OCCURS table maps a main table index, you cannot delete the main table index unless you first remove the mapping from the OCCURS table.
-3011: A push-down filter has been defined on this column. This column cannot be updated
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) A table can contain a logical expression associated with the table. Such a table filter is referred to as a “push-down filter.”
You cannot update a column if it has a push-down filter defined it.
-3012: Only CREATE INDEX IN DICTIONARY operation is supported for COBOL fake main table and variant records
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) You cannot perform a CREATE INDEX operation on a variable record layout table unless you use the IN DICTIONARY keyword (CREATE INDEX . . . IN DICTIONARY . . .).
-3014: Trigger already exists
You are trying to create a trigger, but a trigger with the specified name already exists. Either use a different name, or drop the existing trigger before creating the new one.
-3015: Procedure already exists
You are trying to create a stored procedure, but a stored procedure with the specified name already exists. Either use a different name, or drop the existing stored procedure before creating the new one.
-3016: The fixed-portion size of a record exceeds 65535 bytes
The total size of the fixed-length portion of a record has exceeded 65535 bytes. The total size of the fixed-length portion of any data record may not exceed 65535 bytes. The fixed-length portion of any data record is made up of the following:
all the columns that have a fixed sized (all columns except for LONGVARCHAR and LONGVARBINARY)
one byte for each column that allows null values
8 bytes for each variable-length column (column of type LONGVARCHAR or LONGVARBINARY).
Status code -3016 is returned if you attempt to create a table that exceeds this limit, or if you attempt modifications that would cause a table to exceed the limit.
To determine the size in bytes of the fixed-length portion of a record before you attempt to create a new table, you can use the following calculation:
(sum of the fixed-length column sizes in bytes) + (number of nullable columns) + (8 * number of variable-length columns) = record size in bytes
If you want to determine the size of the fixed-length portion of the record for an existing data file, you can use the BUTIL -STAT command to display a report that includes this information.
-3017: Invalid path/file name
The path/file name for the data file is too long.
-3018: Invalid data type conversion to an identity column
An attempt was made to alter a data type to an identity column.
-3019: Cannot drop a system table
An attempt was made to drop a system table.
-3020: Invalid USING path/file name
The path/file name that you have specified is invalid. Specify a simple, relative path between 1-64 characters.
-3021: Invalid IN DICTIONARY
IN DICTIONARY is not allowed on bound databases.
-3022: Invalid BLOB/CLOB data type in legacy table that contains NOTE/LVAR
A NOTE/LVAR column cannot coexist with a LONGVARCHAR/LONGVARBINARY. NOTE/LVAR must first be altered to a LONGVARCHAR/LONGVARBINARY.
-3023: Data type mismatch
Data conversion failed because data cannot be converted due to data type mismatch or data overflow. This error may occur if, for example, you attempt to alter a column of type DOUBLE to type FLOAT.
-3024: String or binary data truncation error
An attempt was made to convert a char/binary data to a char/binary column that has fewer bytes.
-3025: Arithmetic overflow error
An attempt was made to convert a number to a numeric column that has less precision.
-3026: Invalid NULL conversion
You cannot convert the value NULL into a non-nullable column.
-3027: Invalid foreign key constraint name
The foreign key constraint name that you have specified is invalid. Specify a name between 1-20 characters, using numerals and letters only. It must start with a letter.
-3028: Invalid password
The password that you have specified is invalid. For maximum password length and allowed characters, see Identifier Restrictions in Advanced Operations Guide.
-3029: Invalid group or user name
The group or user name that you have specified is invalid. Specify a group or user name between 1and 30 characters. Numerals and letters only. Must start with a letter.
-3030: Invalid procedure or trigger name
The procedure or trigger name that you have specified is invalid. Specify a name 1–30 characters long. Numerals and letters only. Must start with a letter.
-3031: MKC library cannot be loaded
The attempt to load MKC library failed. Ensure that the following file is located in the proper directory and is the correct version for your product.
Linux: libmkc.* is located in /usr/local/actianzen/lib directory.
-3032: Column in use by primary key
An attempt was made to delete all indexes referencing a column. An index was encountered that is used in the primary key.
-3033: Column in use by foreign key
An attempt was made to delete all indexes referencing a column. An index was encountered that is used in the foreign key.
-3034: Type cannot be null
The requested operation cannot be performed on a column definition that is nullable.
-3035: Length of the foreign key is incompatible
You cannot define a foreign key if the column it references has a different type or attribute.
-3036: Scale of the foreign key is incompatible
You cannot define a foreign key if the column it references has a different type or attribute.
-3037: Precision of the foreign key is incompatible
You cannot define a foreign key if the column it references has a different type or attribute.
-3038: Data Type of the foreign key is incompatible
You cannot define a foreign key if the column it references has a different data type.
-3039: Trigger dependency
You cannot drop the referenced table because a trigger refers to it.
-3040: Group already exists
A group with the specified group name already exists. Use a different group name. If you continue to have problems, check with your system administrator.
If you just tried to create the specified group, but you tried again because you are not sure if it was created, this error indicates that the group was in fact created with the first attempt.
-3041: User already exists
A user with the specified user name already exists. Use a different user name. If you continue to have problems, check with your system administrator.
If you just tried to create the specified user, but you tried again because you are not sure if it was created, this error indicates that the user was in fact created with the first attempt.
-3043: Table referenced by foreign key
Cannot drop the table because it is referenced by a foreign key.
-3044: Too many levels of trigger recursion
A trigger cannot be recursively called more than 30 times.
-3045: Index in use by foreign key
Cannot drop the index because it is referred to by a foreign key.
-3046: Integrity Constraint Violation
Nullable columns are not allowed in this operation.
-3047: RI no matching primary key
You tried to create a foreign key before defining a primary key. Define a primary key before continuing.
-3048: Invalid page size
The page size specified is invalid. Specify a page size that is a multiple of 512 and lies in the range 512-4,096 bytes (4,096 is the default).
-3049: Invalid free space threshold
The free space specified is not valid. Specify a free space percentage of 5, 10, 20, or 30 percent.
-3050: Invalid page number
The page number specified is not valid. Specify a page number between 1-65,535.
-3051: The dictionary is in use
The dictionary you are trying to access is already locked by another user. Wait until that user has unlocked the dictionary and try again.
-3052: Dictionary already exists
A dictionary with the specified name already exists in that directory. Use a different dictionary name or path.
-3053: RI table does not exist
There was an attempt to define referential integrity upon a table that does not exist. Check the table name and try again.
-3054: Duplicate savepoint name error
The specified savepoint name already exists.
-3055: Only one Alternate Collating Sequence per index
There can be only one ACS on a given index.
-3056: Add Nullable column in legacy table
Cannot create true null column in a legacy table.
-3057: Conflicting collation
There are attributes of the Column Collating Sequence that conflict with the column definition.
-3058: Drop last column
Cannot drop the last column of a table. A table must contain at least one column.
-3059: Database could not find dictionary files
The dictionary files for the specified database could not be found. Make sure the dictionary files exist and are in the proper directory.
-3060: Constraint already exists
The specified constraint name already exists.
-3061: Invalid constraint name
While creating a column constraint name, the constraint name was too long, null, or had an invalid character.
-3062: Database has no security
You tried to set security privileges on a database that was not marked secure. First, enable security on the database.
-3063: Database already secured
You cannot secure a database that has already been secured.
-3064: Alter legacy table
Cannot perform an alter table on a legacy table.
-3065: Invalid login
Either an invalid user name was used or the password failed. Make sure you are using the proper login information. If you continue to have problems, check with your system administrator.
-3066: Group not found
A group with the specified group name does not exist. Specify a valid group name. If you continue to have problems, check with your system administrator.
-3067: Group not empty
A group may not be deleted if there are still valid users in that group. Remove any user names before deleting the group.
-3068: Not allowed to define synonym for Public
Public is a default group and you are not allowed to change or add a synonym for the Public group.
-3069: Not allowed to drop Public
Public is a default group and cannot be dropped from the list of groups.
-3070: Not allowed to drop Administrator
Administrator is a default user and cannot be dropped from the list of users.
-3071: Cannot revoke synonym privileges
You cannot revoke privileges to a synonym; you must revoke privileges to the group the synonym refers to.
-3072: Cannot grant synonym privileges
You cannot grant privileges to a synonym; you must grant privileges to the group to which the synonym refers.
-3073: Privileges cannot be revoked from Administrator
Administrator is a default user and you cannot revoke privileges from the Administrator user name.
-3075: Conversion rename error
While converting a database, a file could not be renamed.
-3076: Conversion delete error
While converting a database, a file could not be deleted.
-3077: Bad index name
The index name is either too long or null.
-3078: Bad column name
The column name is either too long or null.
-3079: Bad table name
The table name is either too long or null.
-3080: Data not bound
You cannot bind a database that is already bound. A database can be bound only once.
-3081: Wrong DDF bind information
The binding information does not match the information specified in the Data Dictionary Files.
-3082: DDF already bound
You cannot bind a Data Dictionary File that is already bound.
-3083: DDF not bound
You cannot unbind a Data Dictionary File that is not bound.
-3084: Shared DDF
You cannot bind a database that uses shared Data Dictionary Files.
-3085: Shared data file
You cannot bind a database that uses shared data files.
-3086: Index in use by primary key
You cannot drop the index because it is referenced by a primary key.
-3087: Primary key already exists
The table already has a primary key defined. You must delete the existing primary key and recreate it.
-3088: Incompatible file version
The file specified uses data file format v6.x or before and must be migrated to the current version of data file format before it can be used. Use the Rebuild utility to migrate file versions.
-3089: Inconsistent multipath
A foreign key cannot reference the table it is in.
-3090: Delete connected cycle
While defining a foreign key, there was a foreign key delete rule violation.
-3091: Self referencing delete not cascade
Starting with PSQL v11 SP3, this code became obsolete. A restriction on a self-referencing table can be either cascade or restrict.
You must have a delete cascade defined in the foreign key to be able to do a self-referencing delete.
-3092: RI synchronization
The binding information in the Data Dictionary File and data files does not match.
-3093: Trigger RI conflict
If a delete trigger exists on the table, a delete cascade in a foreign key is not allowed.
-3094: Invalid delete rule
Delete name rules or attributes are not valid.
-3095: Invalid update rule
Update name rules or attributes are not valid.
-3096: Object in use
Cannot delete a stored procedure, trigger or view while in use.
-3097: Invalid collate
The collating sequence has a bad name, cannot be used, or may be corrupt.
-3098: Number out of range
The range for the specified number is invalid. Check the range for the option specified and enter a correct number.
-3099: Foreign key invalid database name
While creating a foreign key, the database name specified is either too long or it is null.
-3348: Cannot create DDFs due to metadata version mismatch with existing DDFs in the location provided
-3358: Not allowed to unbind database and change data locations at the same time
-3359: Not allowed to bind database and change data locations at the same time
-3360: Not allowed to create data dictionary and unbind database at the same time
-3362: Not allowed to change the dictionary location and create dictionary files at the same time
-3363: Not allowed to change data dictionary location and unbind database at the same time
-3364: Not allowed to change data dictionary location and bind database at the same time
-3365: Not allowed to change data locations and change name at the same time
-3366: Not allowed to create a data dictionary files and change name at the same time
-3367: Not allowed to unbind database and change name at the same time
-3368: Not allowed to bind database and change name at the same time
-3369: Not allowed to change data dictionary location and change name at the same time
-3370: Data file for a table is bound, but does not need to be bound
-3371: Data file for a table is not bound
-3374: Data dictionary files are bound, but do not need to be bound
-3375: Data dictionary files are already bound
-3376: Data dictionary files are not bound
-3383: Cannot create DDF files for the bound database
-3385: Cannot create DBNAMES.CFG file
-3386: The bound database cannot share data dictionary files
-3387: The bound database cannot share table data files
-3390: The database is in use
-3391: The specified RI flag is invalid
-3392: Cannot open DBNAMES.CFG file
-3393: DBNAMES.CFG could not be updated
-3394: The specified path for data dictionary or data file locations is invalid
-3395: The database type is invalid
-3396: The database name must be unique; the specified database name already exists
-3397: Invalid buffer length
-3398: The database name is invalid
-3399: No more database names are defined
-3401: Invalid column-level GRANT statement
You receive this status code when you attempt to make a column-level GRANT statement for a right that is not supported. Only SELECT, INSERT and UPDATE are valid column level rights.
In SQL Engine Reference, see GRANT for more information about valid syntax.
-3473: The Zen network services layer was unable to resolve the given file name into a valid path
-3475: Zen network services layer task table is full
-3480: No authentication context is available
-3484: Zen network services layer encountered a transport failure
-3485: The routing table of the Zen network services layer is full
-3487: Failure during receive from the target server
-3488: Failure during send to the target server
-3489: The network layer is not connected
-3491: The Zen network services layer detected an invalid session
-3492: The Zen network services layer is out of memory
-3493: The Zen network services layer encountered a connection failure
-3494: No available transport protocol for the Zen network services layer
-3495: The Zen network services layer encountered a permission error
-3496: Server name not found by Zen network services layer
-3777: The MicroKernel router could not send the request to the remote engine because the specified data buffer length resulted in a data packet object that is too large
-3778: The MicroKernel router received a badly formatted data packet
-3779: An error occurred while loading the MicroKernel
-3780: The MicroKernel router encountered a semaphore error
-3781: The file is already closed
-3782: Data buffer of the local engine is too small
-3783: The MicroKernel router encountered an internal error
-3784: The MicroKernel router encountered an initialization error
-3785: The MicroKernel router cannot find an engine
-3786: The remote engine is inaccessible to the MicroKernel router because the networking component is not loaded
-3787: Local engine is not accessible to the MicroKernel router
-3790: NETinterface.DLL is not loaded
-3791: Invalid configuration for MicroKernel router
-3793: The MicroKernel router detected an invalid session
-3794: The MicroKernel router encountered an operating system error
-3795: The MicroKernel is not responding to the MicroKernel router
-3796: The MicroKernel router detected an incompatible network component
-3797: The MicroKernel router resource DLL is unavailable
-3798: Local access is unavailable to the MicroKernel router
-3799: The MicroKernel router encountered a memory allocation error
-4001: No relational operator found in the specified push-down filter
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) A table can contain a logical expression associated with the table. Such a table filter is referred to as a “push-down filter.”
If you specify a push-down filter, you must also specify a relational operator for the filter (such as equals, greater than, less than, and so forth).
-4002: Specified push-down filter field not found in the table
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) A table can contain a logical expression associated with the table. Such a table filter is referred to as a “push-down filter.”
If you specify a push-down filter for a column, the column must be in the table with which the filter is associated.
-4003: The push-down filter specified contains invalid relational operator
COBOL applications that include OCCURS, partial REDEFINES, or variable record layout can enable SQL access to the Btrieve data files by using the Cobolschemaexec utility. (The utility describes the application’s understanding of data to the relational engine.) A table can contain a logical expression associated with the table. Such a table filter is referred to as a “push-down filter.”
If you specify a push-down filter, you must also specify a valid relational operator for the filter. Valid operators include less than, greater than, equal to, less than or equal to, greater than or equal to, and not equal to.
-4837: The client table is full
-4838: A key has reached a maximum limit for user count, session count, or data in use, or has changed state to expired or disabled.
-4850: SQL Trigger
-4851: A roll forward error occurred
-4852: The log segment is missing
-4853: Duplicate sys key
-4856: The MicroKernel cannot allow unauthorized access to files in a secure MicroKernel database
-4860: The MicroKernel has detected an unacceptable value in the key number
-4861: The NULL indicator position is invalid
-4863: The MicroKernel cannot find the specified Alternate Collating Sequence in the file
-4864: The specified ISR table is corrupt or otherwise invalid
-4865: The MicroKernel cannot read the International Sorting Rule
-4866: More than 5 concurrent users attempted to access the same data file
-4867: The file has reached its size limit
-4869: The MicroKernel ran out of system locks
-4884: The file is owned by another MicroKernel engine acting as a Gateway
-4885: The MicroKernel cannot access the archival logging dump file
-4886: The archival log for the specified file is invalid
-4887: The MicroKernel cannot find the archival log for the specified file
-4888: The specified file is in use by another client
-4889: The specified file name was not found in the archival logging configuration file
-4890: The MicroKernel cannot access the archival logging configuration file
-4891: An unknown error was encountered either creating or accessing a semaphore
-4892: The application attempted to perform a chunk operation on a pre-v6.0 file
-4893: The MicroKernel cannot perform a Get Next Chunk operation
-4894: The file cannot be created with Variable-tail Allocation Tables (VATs)
-4895: The MicroKernel does not recognize the locale
-4896: The chunk offset is too big
-4897: Insufficient stack space is available
-4898: Insufficient operating system memory is available
-4899: No cache buffers are available
-4902: The data buffer is too small
-4903: A communications environment error occurred
-4904: The session is no longer valid
-4905: The application encountered a permission error
-4906: The record lock types are incompatible
-4907: The transaction table is full
-4908: The application encountered a server error
-4909: The redirected device table is full
-4910: A name error occurred
-4911: The application encountered an incompatible mode error
-4912: The handle table is full
-4913: The file table is full
-4914: File is locked
-4915: Record is locked
-4916: The MicroKernel attempted to update or delete a record that was read outside the transaction
-4917: The MicroKernel lost positioning
-4918: The MicroKernel encountered a lock error
-4919: The MicroKernel encountered a record-level conflict
-4920: A programming error occurred
-4921: The MicroKernel detected a deadlock condition
-4922: The application encountered a wait error
-4923: There is a conflict on the referenced file
-4926: The RI definition is out of sync
-4927: The MicroKernel cannot open the RI referenced file
-4928: There is a violation of the RI definitions
-4930: The Delete operation specified a file that is damaged
-4931 The MicroKernel cannot perform the RI Delete Cascade operation
-4932: The MicroKernel cannot open the SQL data dictionary files
-4933: The maximum number of open databases has been exceeded
-4934: The field offset is incorrect
-4935: The filter limit has been reached
-4936: The data buffer parameter specified on an Insert Extended operation is invalid
-4937: The descriptor is incorrect
-4938: The work space is too small
-4939: The specified reject count has been reached
-4940: The specified file already exists
-4941: The compression buffer length is too short
-4942: An expanded memory error occurred
-4943: An index is incomplete
-4944: The application specified an invalid attribute for an AUTOINCREMENT key
-4945: The variable-length portion of the record is corrupt
-4946: The language interface version is invalid
-4947: An error occurred while writing to the cache
-4948: The owner name is invalid
-4949: The file owner is already set
-4950: The extended key type is invalid
-4951: The alternate collating sequence definition is invalid
-4952: The number of files opened exceeds the maximum allowed
-4953: Access to the requested file is denied
-4954: The specified key flags are invalid
-4955: The specified key path is invalid
-4956: The specified record address is invalid
-4957: A file previously opened in Accelerated mode was not closed
-4958: The MicroKernel does not allow the attempted operation
-4959: The file access request exceeds the maximum number of files allowed
-4960: A Begin Transaction operation must precede an End/Abort Transaction operation
-4961: The MicroKernel encountered a transaction control file I/O error
-4962: Another transaction is active
-4964: The application encountered a directory error
-4965: The specified extension name is invalid
-4966: The MicroKernel cannot unload
-4967: The file cannot be extended
-4968: The file is already extended
-4969: The file specified is not a MicroKernel file
-4970: The key length is invalid
-4971: The record length is invalid
-4972: The key position is invalid
-4973: The number of keys specified is invalid
-4974: The application cannot create the specified file
-4975: The page size or data buffer size is invalid
-4976: The position block parameter is not 128 bytes long
-4977: The data buffer parameter is too short
-4978: The key buffer parameter is too short
-4979: The MicroKernel or Btrieve Requester is inactive
-4980: The application encountered an unrecoverable error
-4981: The disk is full
-4983: The application encountered an expansion error
-4984: The application encountered an I/O error during pre-imaging
-4985: The MicroKernel cannot create or open the pre-image file
-4986: The MicroKernel could not open the extension file for an extended file
-4987: The MicroKernel cannot find the specified file
-4988: The specified file name is invalid
-4989: The key field is not modifiable
-4990: The operation encountered the end-of-file
-4991: The current positioning is invalid
-4992: The key number has changed
-4993: The key number parameter is invalid
-4994: The record has a key field containing a duplicate value
You attempted to create a stored procedure with the same name as an existing stored procedure. Follow these steps to recover:
1. Change the name of the stored procedure.
2. Run the statement again.
3. Run a SELECT *from X$proc# statement to get a list of the defined stored procedures. From this list, you can determine whether or not the procedure was actually created.
-4995: The application cannot find the key value
-4996: The file is not open
-4997: The application encountered an I/O error
-4998: The operation parameter is invalid
-5022: Columns in the selection list and the returns clause do not match
The number and type of columns specified in the selection list must match the number and type of columns in the RETURNS clause. For example, the following code returns error -5022 because the RETURNS clause specifies one column but the SELECT list contains two columns:
CREATE PROCEDURE p1 () RETURNS (c INTEGER) AS SELECT c1, c2 FROM t1;
CALL p1()
-5025: Only IN parameter types allowed for user-defined functions
A user-defined function (UDF) allows only IN parameters. Parameters of type OUT and INOUT are not allowed. For example, the following code returns an error because parameter "a" is designated as "out":
CREATE FUNCTION myfunc(OUT :a INTEGER)
RETURNS INTEGER
AS
BEGIN
RETURN 1;
END;
-5027: Invalid Syntax. The last statement included within a function must be a return statement
A user-defined function (UDF) must contain a RETURN statement as the last statement in the function definition.
-5031: Default value cannot have the same UDF name as the UDF being created
The name of a user-defined function (UDF) default parameter cannot be the same name as the UDF itself. For example, the following code is incorrect because both the UDF name and the parameter name are “myfunc”:
CREATE FUNCTION myfunc(:a INT DEFAULT myfunc(1)) RETURNS INTEGER
AS
BEGIN
RETURN :a;
END;
-5032: RETURN statements in a UDF must have an argument
The RETURN statement within a user-defined function (UDF) must specify an argument because a UDF always returns a value.
-5099: Error condition pertaining to a stored procedure
The stored procedure returned one of the following error conditions:
Error Condition
Description
Table name cannot be qualified with database name
The context of the new table and the existing table is the current database.
View name cannot be qualified with database name
The context of the new view and the existing view is the current database.
Procedure name cannot be qualified with database name
The context of the new procedure and the existing procedure is the current database.
Function name cannot be qualified with database name
The context of the new function and the existing function is the current database.
Table name qualifier required for index renaming
You must specify the table to which the index belongs when you rename an index.
Table name qualifier required for trigger renaming
You must specify the table to which the trigger belongs when you rename a trigger.
Table name qualifier required for column renaming
You must specify the table to which the column belongs when you rename a column.
Invalid object type. Type must be one of the following: Column, Function, Index, Procedure, Table, Trigger, or View.
You tried to rename an object that is not one of the types permissible to be renamed. The permissible types are Column, Function, Index, Procedure, Table, Trigger, or View.
-5202: Record is locked
An attempt was made to access a record that is locked by another user. Wait until the record is unlocked and try again.
-5204: Table is not open
The MicroKernel was unable to open the table. Make sure you have the proper access rights and table privileges.
-5208: Invalid date
The format used for the date is incorrect. Check for the correct ODBC date format and try again.
-5219: Translation failed
The ODBC driver failed to translate the data between the data source and the application. Check if the application is using SQLSetConnectOption to override the default translation dll.
-5220: Invalid procedure name
The specified procedure name does not exist. Check the name of the procedure called and try again.
-5221: Invalid predicate name
The ODBC driver does not support this predicate. Consult the SQL Engine Reference for valid predicates.
-5222: Invalid Code Page value
The code page value in the ODBC configuration file is invalid. See Advanced Operations Guide for valid configuration settings.
-5223: User-defined function name cannot be same as built-in function name
The name of a user-defined function (UDF) cannot be same as the name of a predefined scalar function. For a discussion of the scalar functions, see Scalar Functions in SQL Engine Reference.
-5225: Cannot drop an in-built function or an aggregate function
You cannot delete an aggregate function or a predefined scalar function. The aggregate functions include COUNT, AVG, SUM, MAX, MIN, and DISTINCT. For a discussion of the scalar functions, see Scalar Functions in SQL Engine Reference.
-5226: Cannot invoke a user-defined function using CALL statement
You cannot invoke a user-defined function (UDF) with a CALL statement. You must use a SELECT statement to invoke a UDF.
-5229: Invalid user-defined or scalar function
The name you specified for a user-defined function (UDF) does not exists in the dictionary. Specify the name of an existing UDF and try the operation again.
-5230: No such stored procedure
The name you specified for a stored procedure does not exists in the dictionary. Specify the name of an existing stored procedure and try the operation again.
-5231: Stored procedure already exists
The name that you specified for a stored procedure already exists in the dictionary. Specify another name or remove the current stored procedure definition and try the operation again.
-5232: UDF already exists
The name that you specified for a user-defined function (UDF) already exists in the dictionary. Specify another name or remove the current UDF definition and try the operation again.
-5233: Only database qualifier is allowed
Tables, views, procedures, and functions can be associated with databases only. Triggers, indexes, and columns can be associated with databases and tables. The following statement is permissible because the database name and table name may be used to qualify an index name: ALTER INDEX RENAME database1:table1:index1 TO index2. However, the following statement causes an error because a view name can be qualified only with a database name: ALTER VIEW RENAME database1:table1:view1 TO view2. A permissible statement is ALTER VIEW RENAME database1:view1 TO view2 or ALTER VIEW RENAME view1 TO view2.
-5235: Domain Authentication Failed
When the underlying authentication is domain authentication, this generic error may be returned. Most likely, something went wrong in the Active Directory Service Interfaces (ADSI) calls used to authenticate the domain user and get the user's domain group associations.
-5236: Bad Domain User Name or Password
When the underlying authentication is domain authentication, this error may be returned because the domain user cannot be found or the password is incorrect.
-5237: No Zen Group Associated to Domain User
When the underlying authentication is domain authentication, this error may be returned because the domain user is not associated with a Zen group in the database. The domain user must belong to an AD group that is associated with a Zen group in the database being accessed.
-5238: Multiple Zen Groups Associated to Domain User
When the underlying authentication is domain authentication, this error may be returned because the domain user belongs to more than one Zen group in the database. The domain user must belong to an AD group that is associated with one, and only one, Zen group in the database being accessed.
-5239: Domain Authentication is a Windows Platform Security Option
When the underlying authentication is domain authentication, this error may be returned because domain authentication is being used on a non-Windows platform.
-5240: The RPC Server is Unavailable
When the underlying authentication is domain authentication, this error may be returned because the RPC Server is not available (Windows error 1722). This may occur when Zen is querying the AD domain. The user should try logging in again.
-5241: Session Credential Conflict Error
When the underlying authentication is domain authentication, this error may be returned due to a session credential conflict (Windows error 1219) when the domain server is called. Multiple connections are not allowed to a server or shared resource by the same user while using more than one user name. Disconnect all previous connections to the server or shared resource and try again.
-5243: Specified column number is not valid
The PSQL_MOVE keyword (used with ALTER TABLE) must specify a column location greater than zero but less than the total number of columns. For example, assume that table t1 has only two columns, col1 and col2. Both of the following statement return an error:
ALTER TABLE t1 PSQL_MOVE col1 TO 0
ALTER TABLE t1 PSQL_MOVE col1 TO 3
The first statement attempts to move the column to position zero. The second statements attempts to move the column to position three, which is a number greater than the total number of columns (two).
-5245: Procedure/view permissions not supported on this metadata version
Permissions on views and stored procedures are permissible only on databases with V2 metadata.
-5247: This feature is not supported for the current metadata version
Certain functionality, such as trusted and non-trusted views and stored procedures, are permissible only on databases with V2 metadata.
-5248: Invalid partial column
The last (or the only) column in a partial index is not of data type CHAR or VARCHAR.
-100 to -199
Informative Status Codes
This section lists the informative status codes that the MicroKernel can return. The MicroKernel returns these codes as negative values.
-101: The SET statement completed successfully
The following SET statements return this status code when they execute successfully:
SET SECURITY
SET OWNER
SET TRUENULLCREATE
SET VARIABLE
SET ROWCOUNT
SET TIME ZONE
SET DECIMALSEPARATORCOMMA
 
The MicroKernel made the requested change. However, if a SET OWNER statement was issued during a transaction, the change does not take effect until the user begins a new transaction.
-102: The INSERT statement completed successfully
The MicroKernel added the specified rows to the table(s).
-103: The UPDATE statement completed successfully
The MicroKernel made the specified changes to the table(s).
-104: The DELETE statement completed successfully
The MicroKernel deleted the specified rows from the table(s).
-105: The CREATE statement completed successfully
The following CREATE statements return this status code when they execute successfully:
CREATE PROCEDURE
CREATE TABLE
CREATE GROUP
CREATE TRIGGER
CREATE INDEX
CREATE VIEW
The MicroKernel successfully added the group, index, stored procedure, table, trigger, or view to the data dictionary.
-106: The ALTER TABLE statement completed successfully
The MicroKernel successfully made the requested change to the table dictionary definition. If a column has been altered (including a primary key or foreign key) without specifying the IN DICTIONARY keyword, the MicroKernel also changed the data file.
-107: The DROP statement completed successfully
The following DROP statements return this status code when successfully executed:
DROP PROCEDURE
DROP TABLE
DROP GROUP
DROP TRIGGER
DROP INDEX
DROP VIEW
The MicroKernel successfully removed the group, index, stored procedure, table, trigger, or view from the dictionary. (Dropping a table also deletes the data file for that table.)
-108: The statement contains unresolved substitution variables and cannot be executed
The current SQL statement contains substitution variables and cannot be executed until values are supplied for each variable. If your application allows substitution variables, refer to the documentation included with the application to determine how to use them.
-109: The view contains no more records
The beginning or the end of the view has been reached.
-110: The GRANT statement completed successfully
The MicroKernel assigned the specified rights to the user or group.
-111: The REVOKE statement completed successfully
The MicroKernel revoked the specified rights from the user or group.
-112: The START TRANSACTION statement completed successfully
The MicroKernel has begun a transaction. All subsequent statements that you issue are part of this transaction until you issue either a COMMIT WORK or a ROLLBACK WORK statement. For a savepoint, the SAVEPOINT label remains in effect until you explicitly release or roll back to that label, or until the end of any outer transaction within which the savepoint is nested.
-113: The COMMIT WORK statement completed successfully
The MicroKernel committed the changes made by your transaction to the data tables. You can no longer undo the changes with a ROLLBACK WORK statement. For a RELEASE SAVEPOINT statement, any changes made since the savepoint was declared can no longer be rolled back separately. They can only be committed or rolled back as part of an outer transaction.
-114: The ROLLBACK WORK statement completed successfully
The MicroKernel reversed the changes you made during the transaction except for any changes you made with operations that are not affected by transaction processing. If you perform one of the following operations within a transaction, the MicroKernel completes the operation, but you cannot roll back the results:
Operations that create or change dictionary definitions. Therefore, you cannot roll back the results of the following statements: ALTER TABLE, CREATE GROUP, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE TRIGGER, and CREATE VIEW.
Operations that remove dictionary definitions. Therefore, you cannot roll back the results of the following statements: DROP GROUP, DROP INDEX, DROP PROCEDURE, DROP TABLE, DROP TRIGGER, and DROP VIEW.
Operations that grant or revoke security rights. Therefore, you cannot roll back the results of the following statements: GRANT and REVOKE.
For a ROLLBACK TO SAVEPOINT statement, any changes made since the savepoint was declared are rolled back.
-115: The MicroKernel successfully recalled the stored SQL statement
This status code became obsolete in MicroKernel version 4.0, except when you are using v3.01 Compatibility mode.
-116: The MicroKernel successfully executed the stored SQL statement
This status code became obsolete in MicroKernel version 4.0, except when you are using v3.01 Compatibility mode. Starting in MicroKernel v4.0, stored procedures are used instead of stored statements.
The MicroKernel executed the stored statement that you submitted for execution.
-118: The DECLARE statement completed successfully
The following DECLARE statements return this status code when they execute successfully:
DECLARE CURSOR
DECLARE VARIABLE
DECLARE CONDITION
If you issued a DECLARE statement, the MicroKernel successfully created the cursor, variable, or condition you defined.
-119: The SET assignment statement completed successfully
The SET variable = expression statement returns this status code upon successful completion.
-120: The OPEN statement completed successfully
The OPEN CURSOR statement returns this status code upon successful completion.
-121: The CLOSE statement completed successfully
The CLOSE CURSOR statement returns this status code upon successful completion.
-122: The FETCH statement completed successfully
The FETCH statement returns this status code upon successful completion.
-123: The positioned UPDATE statement completed successfully
The UPDATE [table_reference] SET set_clause WHERE CURRENT OF statement returns this status code upon successful completion.
-124: The positioned DELETE statement completed successfully
The DELETE [FROM table_reference] WHERE CURRENT OF cursor_name statement returns this status code upon successful completion.
-125: The CALL stored procedure statement completed successfully
The CALL statement returns this status code upon successful completion. This status code indicates the successful completion condition for the stored procedure.
 
Last modified date: 10/31/2023