This document describes status codes that are returned by Btrieve
MicroKernel. 1: The operation parameter is invalid.The specified Btrieve operation does not exist or is not valid for this version of the MicroKernel. 2: The application encountered an I/O error.An error occurred while reading from or writing to the disk. One of the following has occurred:
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. 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. Also, pre-v6.x server engines return this status code if two separate files have different ACSs, but those ACSs have the same name. Never use the same name for different ACSs, regardless of the version you are using. 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. In pre-v6.0 MicroKernels, this status code indicates that you added an AUTOINCREMENT key and the field being indexed contains more than one zero. 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 one of the following situations:
10: The key field is not modifiable.During an Update operation, the application attempted to modify a key field that is defined as nonmodifiable. 11: The specified filename is invalid.This status code indicates either that the specified filename does not conform to file naming conventions, or that the pathname is invalid. Make sure the filename or pathname is valid for the environment. This status code can also have the following meanings in client/server versions of the MicroKernel:
12: The MicroKernel cannot find the specified file.Check the key buffer parameter to make sure the pathname is terminated with a blank or a binary zero. Also, ensure that the file exists. 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 (for example, by Pervasive.SQL's cleanup utility) and old Data Source Names (DSNs) which reference that file are not removed from the ODBC. 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. For v7.0 and later MicroKernels, an extended file can consist of a base file and up to 15 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. For pre-v6.0 MicroKernels, extension files must be loaded on the logical disk drive specified when the extension was created. Both the primary file and its extension file must be online to access an extended file. 14: The MicroKernel cannot create or open the pre-image file.The MicroKernel uses pre-image files only for pre-v6.0 data files. The MicroKernel returns this status code in one of the following situations:
15: The application encountered an I/O error during pre-imaging.The MicroKernel uses pre-image files only for pre-v6.0 data files. This status code indicates that either the disk is full or the pre-image file is damaged. If you receive this status code, proceed as follows:
16: The application encountered an expansion error.This status code is obsolete in MicroKernel versions 6.0 and later. The MicroKernel returns this status code when it encounters 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. 17: The application encountered a close error.This status code is obsolete in MicroKernel versions 6.0 and later. The MicroKernel returns this status code when it encounters an error while writing the directory structure to disk prior to closing the file. 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. The MicroKernel also returns this status code if the application passed an invalid position block for the file. 18: The disk is full.The MicroKernel can return this status code in the following situations:
19: The application encountered an unrecoverable error.To ensure file integrity, recover the file as described in the Pervasive.SQL User's Guide. 20: The MicroKernel or Btrieve Requester is inactive.Verify that the IPX/SPX or TCP/IP protocol is properly installed at the client machine. Verify that no two machines on the network have the same Internal Network Number. In the DOS and NetWare environments, you must load the MicroKernel and, if applicable, the Btrieve Requester before generating any requests. Also for NetWare, ensure that the appropriate communications modules are loaded at the server. If you are running an application in a client/server environment and also need to access files located on a local drive, ensure that you enable both Local and Server access and that the local MicroKernel is available. By default in the Windows and Windows NT environments, the Setup utility enables the Local Engine Usage option. To access a server engine but not a workstation engine, turn the Local option off and turn the Server option on. To access both workstation and server MicroKernels, enable both the Server option and the Local option. Also, in the Windows environment, ensure that the Btrieve for Windows DLLs and MicroKernel executable are in your path or in the Windows system directory. Ensure that you do not have multiple copies of WBTICOMM.DLL or WBTRCALL.DLL installed on the same machine. In the Windows NT server environment, you must start the MicroKernel before generating any requests. Ensure that the Windows NT DLLs are in your path. Also ensure that 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.
23: The position block parameter is not 128 bytes long.This status code is obsolete in Btrieve language interface versions 6.0 and later. 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:
25: The application cannot create the specified file.The MicroKernel can return this status code if an application attempts to create a data file, but the disk directory or the disk itself is full. If the application is creating a file over an existing file, the MicroKernel returns this status code when the existing file is open or when the operating system prevents the operation for some other reason (for example, because the file is flagged transactional in NetWare). Sometimes pre-v6.0 MicroKernels can return this status code if the HOLD parameter in NET.CFG or SHELL.CFG is set to ON and the application attempts to create a data file on a network drive. (The HOLD parameter is set to OFF by default.) Creating the file on a local drive is successful regardless of the value of the HOLD parameter. 26: The number of keys specified is invalid.The number of keys specified for the page size is invalid. The number of key segments must be within the following limits:
If the MicroKernel is configured to create files in v5.x format, the maximum number of key segments is 8 for files using 512 byte page sizes; the maximum number of key segments for all other v5.x files is 24. For a key-only file, this status code is also returned if the number of keys specified is not one, or the avaliable linked keys is not zero (only one key is allowed for a key-only file.) 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 specified record length (plus overhead for duplicates, record usage count, variable record pointers, key pointers, and blank truncation information) must be less than or equal to the page size minus 6 bytes, and greater than or equal to 6 bytes. For key-only files, the maximum record length is 253 bytes (255 bytes for a pre-v6.0 file). 29: The key length is invalid.The specified key length must be greater than 0 but cannot exceed 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 eight keys. If the page size is too small to accommodate eight occurrences of the specified key length (plus overhead), either increase the file's page size, or decrease the key length. This error could also occur 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 nullable CHAR column of 255 characters (or VARCHAR or 254). This is because an additional byte of storage space is needed for the null indicator for the column. This additional byte causes the actual length of the index to be one byte longer, or 256 bytes. If status code 29 is received during any of these SQL operations, reduce the size of the column and try again, 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. 30: The file specified is not a MicroKernel file.Either the MicroKernel did not create the file, or a pre-v3.x MicroKernel created it. You can also receive this status code from earlier versions of Btrieve when you open a file created by a later version, if the file has a format incompatible with the earlier version. This status code can also indicate that the first page of the file is 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 the Pervasive.SQL User's Guide. 31: The file is already extended.This status code is obsolete in MicroKernel versions 6.0 and later. The MicroKernel returns this status code if an application tries to extend a file that has already been extended; you can only extend a file once. 32: The file cannot be extended.The MicroKernel returns this status code when it must create an extension file to accommodate a file which is growing larger than the operating system's file size limit, but 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 one of the following two reasons:
34: The specified extension name is invalid.This status code is obsolete in MicroKernel versions 6.0 and later. The MicroKernel returns this status code if an application specified an invalid filename for the extended partition. Check the validity of the filename. 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. 36: The application encountered a transaction error.Version 7.0 and later MicroKernels return this status code if the MKDE defines too many transaction nesting levels. The v7.0 MicroKernel allows each transaction a total of 255 internal nesting levels. However, the MKDE v4.0 uses some of these levels internally to enforce atomicity on INSERT, UPDATE, and DELETE statements. Therefore, a session can effectively define no more than 253 savepoints to be active at one time. This limit may be further reduced by triggers that contain additional INSERT, UPDATE, and DELETE statements. If your operation reaches this limit, you must reduce the number of savepoints or the number of atomic statements contained within it. Version 6.x MicroKernels return this status code if the MicroKernel tried to perform a Begin Transaction operation, but it was not configured to allow transactions. Use the Setup utility to specify a higher value for the Number of Transactions configuration setting. Next, stop and then restart the MicroKernel so that your changes take effect.
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 is obsolete in MicroKernel versions 7.0 and later. The MicroKernel returns this status code if an error occurs when the MicroKernel tries 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), End Nested Transaction (2020), Abort Transaction (21), or Abort Nested Transaction (2021) operation without a corresponding Begin Transaction (19 or 1019) or Begin Nested Transaction (2019 or 3019) 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 is obsolete in MicroKernel versions 6.0 and later. 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 MicroKernel returns this status code for one of the following reasons:
42: A file previously opened in Accelerated mode was not closed.This status code is obsolete in MicroKernel versions 6.0 and later. The MicroKernel returns this status code for one of the following reasons:
43: The specified record address is invalid.The MicroKernel returns this status code for one of the following reasons:
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. Pre-v6.x MicroKernels return Status Code 82 in this situation; therefore, write your application to check for both of these status codes. 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 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 one of the following reasons:
47: The number of files opened exceeds the maximum allowed.This status code is obsolete in MicroKernel versions 6.0 and later. 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's 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 one of the following reasons:
49: The extended key type is invalid.The MicroKernel returns this status code for one of the following reasons:
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 one of the following reasons:
52: An error occurred while writing to the cache.This status code is obsolete in MicroKernel versions 6.0 and later. 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. To access files with variable-length records, you must use a v4.x or later interface. The MicroKernel can also return this status code when an application calls BTRVID using a pre-v6.0 MicroKernel with the DOS interface. Pre-v6.0 MicroKernels do not support BTRVID. 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 the Pervasive.SQL User's Guide. 55: The application specified an invalid attribute for an AUTOINCREMENT key.The application tried to specify either the segmented or duplicate attribute for an AUTOINCREMENT key type. An AUTOINCREMENT key can be part of a segmented key only if the key number of the AUTOINCREMENT key is less than the key number of the segmented key. An AUTOINCREMENT key cannot allow duplicates. 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 is obsolete in MicroKernel versions 6.0 and later. 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.The application tried to read or write a record that is longer than the value specified for the size of the compression buffer. Reconfigure the MicroKernel using the Setup utility, specifying a higher value for the Largest Compressed Record Size option. 59: The specified file already exists.This status code is returned for the Create operation if 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 filename 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. When using v6.15.2 and later MicroKernels, you 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.The descriptor (data buffer structure), which is passed for a Get Next Extended, Get Previous Extended, Step Next Extended, or Step Previous 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 namespace 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 it is inconsistent (either internally or with respect to the data buffer length). 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 returns this status code for any of the following reasons:
65: The field offset is incorrect.The field offset in the extractor of a Get Next Extended, Get Previous Extended, Step Next Extended, or Step Previous Extended operation is invalid based on the length of the retrieved record. Make sure that the field offset is a valid value (from 0 through the record length minus 1). 66: The maximum number of open databases has been exceeded.The MicroKernel tried to open files bound to too many the MKDE databases. Use the Setup utility to configure a higher value for the Maximum Databases option. Refer to the Pervasive.SQL Programmer's Guide for more information about bound files. 67: The MicroKernel cannot open the SQL data dictionary files.The MicroKernel returns this status code for one of the following reasons:
68: The MicroKernel cannot perform the RI Delete Cascade operation.The MicroKernel cannot enforce the Delete Cascade rule on a file under 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. Refer to the Pervasive.SQL Programmer's 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. Refer to the Pervasive.SQL User's Guide for more information about recovering damaged files. Refer to the Pervasive.SQL Programmer's Guide for more information about RI and the Delete Cascade rule. 71: There is a violation of the RI definitions.If you have attempted an Insert operation on a file under RI control, you can receive this status code if 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:
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.
73: The RI definition is out of sync.The MicroKernel returns this status code for one of the following reasons:
74: The MicroKernel aborted the transaction.This status code is obsolete in MicroKernel versions 6.0 and later. This is an informative status code. A NetWare-based MicroKernel replaced an End Transaction operation with an Abort Transaction operation after detecting an error for a Transaction Tracking System (TTS) file inside the transaction. The MicroKernel then executed the Abort Transaction operation. 76: There is a conflict on the referenced file.An application attempted to perform an Update, Insert, or Delete operation on an RI-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. Refer to the Pervasive.SQL Programmer's Guide for more information about RI. 77: The application encountered a wait error.This status code is obsolete in MicroKernel versions 7.0 and later. 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:
78: The MicroKernel detected a deadlock condition.The application should clear all resources (for example, by aborting or 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 is obsolete in MicroKernel versions 7.0 and later. Although very rare, it is possible to receive this status code when 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's 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. In pre-v6.0 workstation MicroKernels, a page-level conflict also produces this status code. For example, station A reads a record, station B reads and updates a different record on the same data page, and then station A attempts to update the record it read. (You also receive this status code with v6.0 and later MicroKernels if the files are in v5.x format.) In pre-v6.0 workstation MicroKernels, a conflict can also occur if station A reads a record, station B reads a different record and updates it, causing duplicate pointers to be updated on record A, and then station A tries to update the record. 81: The MicroKernel encountered a lock error.The MicroKernel returns this status code in one of the following situations:
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 re-establish 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 is obsolete in MicroKernel versions 7.0 and later. The MicroKernel returns this status code if 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.The application tried to apply a no-wait lock on a record that is currently locked by another application, or the application tried to access a file in a no-wait transaction while another application holds one or more active record locks in that file. This status code can also occur if the application tried to update or delete a record locked by another application. The application can use either of the following recovery methods:
85: The file is locked.The MicroKernel returns this status code in one of the following situations:
86: The file table is full.Using the Setup utility, specify a higher value for the Open Files configuration option. 87: The handle table is full.Either you have 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 the MicroKernel to allow more handles, use the Setup utility and increase the value of the Handles option. To configure your operating system to allow more handles, refer to your operating system documentation. It is helpful to know the following details regarding the MicroKernel's 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. 88: The application encountered an incompatible mode error.The MicroKernel returns this status code in one of the following situations:
89: A name error occurred.This status code is obsolete in MicroKernel versions 5.0 and later. 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 is obsolete in MicroKernel versions 6.0 and later. The DOS Requester's 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.The MicroKernel returns this status code in one of the following situations:
92: The transaction table is full.This status code is obsolete in MicroKernel versions 7.0 and later. The MicroKernel returns this status code if the application exceeded the maximum number of active transactions. Use the Setup utility 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 one of the following situations:
95: The session is no longer valid.The server MicroKernel returns this status code for one of the following reasons:
96: A communications environment error occurred.The MicroKernel returns this status code for one of the following reasons:
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:
98: The MicroKernel detected an internal transaction error.This status code is obsolete in MicroKernel versions 6.0 and later. A NetWare-based MicroKernel detected an error while executing the operation on a NetWare Transaction Tracking System (TTS) file. The application can perform only an Abort Transaction operation at this point. 99: The Btrieve Requester is unable to access the NetWare Runtime server.The Btrieve Requester returns this status code when you enable NetWare Runtime server support and the Requester either detects no existing connection or cannot find a valid login username. SUPERVISOR and ADMIN are not valid usernames, even if supplied with the correct password. If the Requester cannot find a login username other than SUPERVISOR or ADMIN, there is no valid name to pass. This error is also returned if you try to access a server with the NetWare Runtime server support disabled and you do not have an existing connection to that server. 100: No cache buffers are available.This status code, returned by v6.0 and later MicroKernels, indicates that the MicroKernel has used all the cache buffers it allocated at load time. Use the Setup utility to increase the value for the Cache Allocation configuration option. 101: Insufficient operating system memory is available.This status code, returned by v6.0 and later client/server MicroKernels, 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:
102: Insufficient stack space is available.This status code, returned as a run-time error by v6.0 and later MicroKernels, 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 Btrieve interface on the local server. 103: The chunk offset is too big.The MicroKernel returns this status code in one of the following situations:
104: The MicroKernel does not recognize the locale.In v6.0 or later MicroKernels, the Create or Create Index operation returns this status code to indicate that 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).Version 6.0 and later MicroKernels return this status code when an application tries 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.Version 6.0 and later MicroKernels return this status code when an application calls the Get Direct/Chunk operation to retrieve a chunk from a record and uses the next-in-record bias on the descriptor subfunction, but after the application establishes its positioning in the record (and prior to this call), the target record is deleted. 107: The application attempted to perform a chunk operation on a pre-v6.0 file.Version 6.0 and later MicroKernels return this status code when an application tries 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.Windows NT workstation MicroKernels return this status code when trying to perform 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 the data files on the drive for which you want to perform archival logging. The MicroKernel returns this status code for the following reasons:
111: The specified filename 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. 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 cannot find the archival log for the specified file.The MicroKernel 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 filename for the archival log file in the BLOG.CFG file. Ensure that the BLOG.CFG file indicates the correct filename for the archival log and ensure that the archival log file exists. 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 filename for the archival log file in the BLOG.CFG file. Ensure that the BLOG.CFG file indicates the correct filename 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:
116: The file is owned by another Microkernel engine acting as a Gateway.130: The MicroKernel ran out of system locks.This status code is obsolete in MicroKernel versions 6.15 and later. This status code can indicate a temporary condition in which no system locks are currently available. The following are example cases:
132: The file has reached its size limit.The MicroKernel returns this status code in one of the following situations:
133: More than 5 concurrent users attempted to access the same data file.In the Pervasive.SQL Developer Kit for a workstation environment, you attempted to access a data file with more than five MicroKernels at the same time. The Pervasive.SQL Developer Kit for workstation environments limits the number of concurrent users of a file to five engines. 134: The MicroKernel cannot read the International Sorting Rule.The MicroKernel returns this status code for one of the following reasons:
135: The specified ISR table is corrupt or otherwise invalid.The MicroKernel returns this status code when it has 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:
138: The NULL indicator position is invalid.
139: The MicroKernel has detected an unacceptable value in the key number.Certain Btrieve 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's index to be used with the operation (as is done, for example, in the Get Equal 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. For information about acceptable values for the operation's key number parameter, consult the section in the Btrieve Programmer's Guide that documents the operation that returned this status code. 140: The savepoint ID is invalid.The application supplied an invalid savepoint ID in a nested transaction operation. Ensure that you specify valid savepoint ID's. 143: The MicroKernel cannot allow unauthorized access to files in a secure MKDE database.You attempted to open a data file bound to a the MKDE database that has security enabled. The MicroKernel does not allow access to such files, except through the MKDE. The MicroKernel also returns this status code if you are not using the MKDE and all of the following are true:
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:
151: The nesting level is too deep.You have exceeded the number of nesting levels that the MicroKernel allows. The MicroKernel's nesting level limit is 4,095. Specify fewer nesting levels. If you are using the MKDE and you specified fewer than 4,095 nesting levels, you may have specified more nesting levels than your system memory can hold. 161: The maximum number of user count licences has been reached.You attempted to open another session when you were at the limit of your user count licence. Either close a session or upgrade your user count. For more information about purchasing and installing additive user counts, refer to Getting Started With Pervasive.SQL . You can use the Monitor utility to determine which users currently have connections to Pervasive.SQL. For information about the Monitor utility, refer to the Pervasive.SQL User's Guide. 162: The client table is full. Try increasing the number of Active Clients in the MicroKernel Database Engine System Resource setting.You receive this status code when your setting for Active Clients in the Configuration utility is set too low, causing Pervasive.SQL to exhaust its client table space. To increase your Active Clients setting and solve Status 162:
Click Start, point to Programs, then to Pervasive SQL 7.5 . Select Configuration (Setup) from the list of programs. If you are running Configuration from a client, click Connect and type the name of the server on which Pervasive.SQL is installed. Select MicroKernel Database Engine from the list of components. Select System Resources/Directories from the list of categories for the MicroKernel Database Engine. Select the Active Clients setting. Increase the value to the number of clients that access the server engine at any one time. The name you specified for a new index already exists as an index name or column name in the dictionary. Specify a unique name for the index. 163: The NULL indicator cannot be the last segment.The NULL indicator segment (NIS) should not be the last segment of the key descriptor. Otherwise, a status 163 is returned. January 24, 2000 |