BTRIEVE.TXT Headings: 1.0 Appendix C Using Brequest 1.1 Using the Btrieve NLM 1.1.1 Using the NLM with EQUIP 1.2 Using Brequest in a Login Script 1.3 Using the Btrieve VAP 2.0 Appendix D Btrieve Status Codes 2.1 Btrieve Status Codes 2.2 Client-Based Btrieve for OS/2 and Windows Status Codes 2.3 Btrieve Requester Status Codes 1.0 Appendix C Using Brequest Appendix B discussed error messages and explanations. This appendix discusses the use and configuration of the server-based Btrieve record manager, BREQUEST. 1.1 Using the Btrieve NLM The Btrieve record manager must be loaded before running the SiteMeter EQUIP program. It is highly recommended that you use the server-based BREQUEST program while running EQUIP. This appendix offers recommendations on setting up and using the Btrieve NLM. NOTE: a - When using BREQUEST, version 6.10 or greater is required. b - When using BREQUEST, BSPXCOM and BROUTER must also be loaded on the fileserver. For details on loading these programs, refer to your Novell documentation. 1.1.1 Using the NLM with EQUIP Using BREQUEST, as opposed to BTRIEVE, will improve the performance of data collection, auditing and reporting by at least 50% and as much as 500%. An additional advantage is the savings in local (client) memory--BTRIEVE.EXE can occupy from 50-85K of conventional memory, whereas BREQUEST.EXE can occupy approximately 31-45K. The exact amount of memory required for both programs depend on the specified command line parameters. Use the following procedure to configure the Btrieve NLM. 1. To configure the NLM, run BSETUP.NLM. At the file server console prompt, type: LOAD BSETUP 2. Choose Set Btrieve Configuration to verify that the following options are defined. The values provided below are the minimum values required; your current values may be set higher. o Number of Open Files: = 22 (default = 20) o Number of Transactions: = 1 (default = 0) o Largest Record Size: = 17000 (default = 8192) o Largest Page Size: = 4096 (default = 4096) NOTE: All other BSETUP options can remain unchanged. 3. Save the configuration, and exit BSETUP. BSETUP writes the configuration changes to the BSTART.NCF file. The changes do not take effect until the next time the Btrieve NLM is loaded. 4. To load the NLM, run BSTART. At the file server console prompt, type: BSTART BSTART is an NCF file which loads both BTRIEVE.NLM and BSPXCOM.NLM. 5. To unload the Btrieve NLM, issue the BSTOP command. If the Btrieve NLM was loaded when changes were made in BSETUP, you need to unload Btrieve and then reload the NLMs in order for the changes to take effect. For example, at the console prompt, type: BSTOP BSTART 1.2 Using Brequest in a Login Script To ensure that EQUIP is executed on a regular basis, the EQUIP command can be placed in your system login script. Because the Btrieve database must be loaded before running EQUIP, a Btrieve command must also be placed in the login script. EQUIP executes much faster when used in conjunction with Brequest and the BTRIEVE NLM; therefore, the login script should contain the BREQUEST.EXE command. The following example illustrates how EQUIP can be run from the system login script, using BREQUEST. Comments are indicated in the text between the angle brackets. MAP F:=FS/SYS:LANINV DRIVE F: #BREQUEST /D:17000 #EQUIP #ENDBTRV NOTES: a - Loading SPX - LAN Inventory requires SPX to be loaded at each workstation. Brequest communicates with BSPXCOM.NLM via SPX. BSPXCOM, in turn, passes all requests from Brequest to the BTRIEVE NLM. If SPX is not loaded at a workstation, that workstation has no communication whatsoever with the Btrieve record manager. If you have loaded Brequest and are getting "BTRIEVE Record Manager Not Loaded" messages, make sure that SPX is loaded. This normally only becomes an issue on workstations that load the ODI drivers because the ODI drivers can optionally load SPX. b - Brequest /D switch - The /D: parameter specifies the size of the "data message buffer length." This buffer refers to the maximum record size that the NLM will transmit to the workstation. This switch should be set to 17000 for the purposes of LAN Inventory. c - Brequest /L switch - When running SDUPDATE.EXE in a DOS box, you must load another session of BREQUEST by entering the following command: BREQUEST /D:17000 /L After running the program, end the additional session by issuing the ENDBTRV command. d - Brequest Error 87 - If you receive an "Error 87" from Btrieve while using Brequest, increase the 'Number Of Open Files' setting in BSETUP. 1.3 Using the Btrieve VAP All of the options and suggestions regarding the Btrieve NLM also apply to the Btrieve VAP. The BSETUP parameters, Brequest parameters, and Windows requester initialization settings are identical. NOTE: When using the Btrieve VAP, the file server needs to be rebooted in order for any changes in BSETUP to take effect. 2.0 Appendix D Btrieve Status Codes Appendix C described how to configure and use Btrieve. This appendix lists the return status codes for Novell's Btrieve Record Manager. 2.1 Btrieve Status Codes Btrieve returns a status code after each operation an application performs. If the operation was successful, Btrieve returns status code 0. If the operation was not successful, Btrieve will return one of the nonzero status codes described in this section. If Btrieve returns a code that is not contained in this section, refer to your Btrieve Installation and Operation Manual for error codes from the utilities. 01 INVALID OPERATION The operation parameter specified in the call is invalid. 02 I/O ERROR An error occurred during disk read/write. This status code indicates that the file has been damaged and must be recreated, or that the file specified on the open call was not created. This status code also occurs if the application passed an invalid position block. 03 FILE NOT OPEN The operation cannot execute because the file is not open. A successful Open operation must be performed before Btrieve can process any other operations. This status code may also occur if the application passed an invalid position block for the file. 04 KEY VALUE NOT FOUND The specified key value in the index path was not found. 05 DUPLICATE KEY VALUE A record with a key field containing a duplicate key value cannot be added to an index that does not allow duplicate values. 06 INVALID KEY NUMBER The value stored in the key number parameter was not valid for the file being accessed. The key number must correspond to one of the keys defined when the file was created or to a supplemental index. 07 DIFFERENT KEY NUMBER The key number parameter changed before a Get Next, Get Next Extended, Get Previous, Get Previous Extended, Update, or Delete operation. The operation specified requires the same key number parameter as the previous operation because Btrieve uses positioning information relative to the previous key number. If you need to change key numbers between consecutive Get Next, Get Next Extended, Get Previous, or Get Previous Extended operations, use a Get Position operation followed by a Get Direct operation to re-establish positioning for the new index path. 08 INVALID POSITIONING The current position must be established to update or delete a record. Perform a Get or Step operation to establish the current position. This status code may also occur if the application passed an invalid position block for the file. 09 END-OF-FILE The operation tried to read past the file boundaries (end-of-file or start-of-file). When reading a file in ascending order according to an index path, Btrieve returns the last record in that index path. When reading a file in descending order according to an index path, Btrieve returns the first record in the index path. The Get Extended and Step Extended operations return this status code if the number of records satisfying the filtering condition is less than the number of specified records to be returned and the reject count has not been reached. 10 MODIFIABLE KEY VALUE ERROR The operation tried to modify a key field which is defined as non-modifiable. 11 INVALID FILENAME The filename specified does not conform to file naming conventions. 12 FILE NOT FOUND The filename specified does not exist. Check the key buffer parameter to make sure the pathname is terminated with a blank or a binary zero. 13 EXTENDED FILE ERROR Btrieve could not find the extension file for an extended file which the application tried to open. 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 on-line to access an extended file. 14 PRE-IMAGE OPEN ERROR The pre-image file could not be created or opened. There are three possible causes for this error. Btrieve could not create a new pre-image file because your disk directory is full. Btrieve must be able to create a pre-image file. Btrieve could not open the pre-image file to restore file integrity. If the pre-image file was erased or damaged, Btrieve cannot restore the file's integrity. In this case, either use the RECOVER command in the BUTIL utility to retrieve the damaged file's data records in a sequential file, or replace the file with its most recent backup. Btrieve could not assign a handle to the pre-image file because the Btrieve was not started by a user with access rights to the pre-image file. 15 PRE-IMAGE I/O ERROR An I/O error occurred during the pre-imaging function. Either the disk is full or the pre-image file is damaged. If the disk is full, erase any unnecessary files or extend the file to gain additional disk space. If the pre-image file is damaged, the integrity of the Btrieve file cannot be ensured. Either use the RECOVER command in the BUTIL utility to retrieve the damaged file's data records in a sequential file, or replace the file with its most recent backup. 16 EXPANSION ERROR An error occurred while writing the directory structure to disk prior to the creation of the expanded file partition. Either Btrieve could not close the file, or a new page was added to the file and Btrieve could not close and reopen the file to update the directory structure. Check for a disk hardware failure. 17 CLOSE ERROR An error occurred while writing the directory structure to disk prior to closing the file. Either Btrieve could not close the file, or a new page was added to the file and Btrieve could not close and reopen the file to update the directory structure. Check for a disk hardware failure. This status code also occurs if the application passed an invalid position block for the file. 18 DISK FULL The disk is full and the file could not be expanded to accommodate the insertion. Either erase any unnecessary files or extend the file to gain additional disk space. 19 UNRECOVERABLE ERROR An unrecoverable error has occurred. File integrity cannot be ensured. Either use the RECOVER command in the BUTIL utility to retrieve the damaged file's data records in a sequential file, or replace the Btrieve with its most recent backup. 20 RECORD MANAGER INACTIVE A request has been made before the Record Manager has been started. Restart the Record Manager. In network environments, the operation was not processed because BREQUEST was not loaded. Reload BREQUEST. 21 KEY BUFFER TOO SHORT The key buffer parameter was not long enough to accommodate the key field for the index path requested. Verify that the length of the key buffer equals the defined length of the key specified in the key number parameter. This status code can be returned only by certain interfaces. 22 DATA BUFFER LENGTH The data buffer parameter was not long enough to accommodate the length of the data record defined when the file was created. Verify that the length of the data buffer is at least as long as the file's defined record length. For Get or Step operations, if the data buffer is too short to contain the fixed length portion of the record, Btrieve does not return any data to the data buffer. If the record is a variable length record and the data buffer is too short to contain the entire variable length portion of the record, Btrieve returns as much data as it can and a status code 22, indicating that it could not return the entire record. For the Insert operation, Btrieve does not insert the record if the data buffer is shorter than the fixed length portion of the record. For the Update operation, if the data buffer is too short to contain the fixed length portion of any record, Btrieve does not update the record. For the Create, Stat, and Create Supplemental Index operations, a status code 22 indicates that the data buffer is not long enough to contain all the file and key specifications, and the alternate collating sequence definition, if specified. 23 POSITION BLOCK LENGTH The position block parameter was not 128 bytes long. This error can only be detected using certain language interfaces. 24 PAGE SIZE ERROR The page size was invalid. The page size must be a multiple of 512 bytes but must be no larger than 4096 bytes. To solve this, run or load BSETUP at the server. Change the page size to 4096 and the largest record size to 17000. See Appendix C for more information. 25 CREATE I/O ERROR The file specified could not be created. Possible causes are a full disk directory or a full disk. If you are creating a file over an existing file, Btrieve returns this status code if the existing file is open or the operating system does not allow the creation for some other reason (for example, a NetWare file is flagged transactional). 26 NUMBER OF KEYS The number of keys specified for the page size was invalid. For standard Btrieve files with a page size of 512 bytes, the number of key segments must be between 1 and 8. For larger page sizes, the number of key segments must be between 1 and 24. You must define at least one key without the null attribute. 27 INVALID KEY POSITION The key field position specified exceeded the defined record length for the file. Either the key position was greater than the record length or the key position plus the key length exceeded the record length. For key-only files, the key must begin in the first byte of the record (position 1). 28 INVALID RECORD LENGTH The record length was invalid. The record length specified (plus overhead for duplicates) must be less than or equal to the page size minus 6 or greater than or equal to 4 bytes long. 29 INVALID KEY LENGTH The key length was invalid. The key length specified must be greater than zero and cannot exceed 255. The length of a binary key must be even. Btrieve requires that each key page in the file is 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. 30 NOT A BTRIEVE FILE The filename specified is not a valid Btrieve file. Either the file was not created by Btrieve, or it was created by an earlier version of Btrieve. Another possibility is that the first page of the file, which contains the File Control Record, is damaged. 31 FILE ALREADY EXTENDED The file specified has already been extended. A file can be extended only once. 32 EXTEND I/O ERROR The file could not be extended. Possible causes are that the directory is full, the disk is full, or the disk is write protected. 34 INVALID EXTENSION NAME The filename specified for the extended partition was invalid. 35 DIRECTORY ERROR An error occurred while changing to the directory that contains the Btrieve file. Either the drive specified in the Get Directory operation does not exist or the pathname specified in a Set Directory operation was invalid. 36 TRANSACTION ERROR A Begin Transaction operation could not be performed because no transactions were specified when the Btrieve was initialized. 37 TRANSACTION IS ACTIVE A Begin Transaction was issued while another transaction was active at that station. Transactions cannot be nested. 38 TRANSACTION CONTROL FILE I/O ERROR An error occurred when Btrieve tried to write to the transaction control file. Possible causes were that the disk was full, the disk was write protected, or the transaction control file (which was created when the Btrieve was loaded) was deleted. 39 END/ABORT TRANSACTION ERROR An End or Abort Transaction operation was issued without a corresponding Begin Transaction operation. 40 TRANSACTION MAX FILES The application tried to update more than the maximum number of files allowed within a transaction. The maximum number of different files that can be updated during a logical transaction is set when Btrieve is configured. Refer to your Btrieve Installation and Operation manual for more information on configuration. 41 OPERATION NOT ALLOWED The application tried to perform an operation that is not allowed at this time. Some operations are not allowed under certain operating conditions. For example, Btrieve returns this status code if you attempt to perform a Step, Update, or Delete operation on a key-only file or a Get operation on a data only file. lso, certain operations are prohibited during transactions because they have too great an effect on the pre-image file or on Btrieve's performance. These operations include Close, Set or Clear Owner, Extend, Create Supplemental Index, and Drop Supplemental Index. 42 INCOMPLETE ACCELERATED ACCESS The application tried to open a file that was previously accessed in accelerated mode and never successfully closed. The file's integrity cannot be ensured. Either use the RECOVER command in the BUTIL utility to build a new file or restore the file using the latest backup. 43 INVALID RECORD ADDRESS The record address specified for a Get Direct operation was invalid. The address is outside of the file's boundaries; it is not on a record boundary within a data page, or on a data page. The 4-byte address you specify for a Get Direct operation should be one that was obtained by a Get Position operation. 44 NULL KEY PATH The application tried to use the Get Direct operation to establish an index path for a key whose value is null in the corresponding record. Btrieve cannot establish positioning based on a null key value. 45 INCONSISTENT KEY FLAGS The key flags specification on a Create operation was inconsistent. If a key has multiple segments, the duplicate, modifiable, and null attributes should be the same for each segment in the key. 46 ACCESS TO FILE DENIED The application opened a file in read-only mode and tried to perform an Update, Delete, or Insert on that file. Another possible cause is that the owner name required for updates was not specified correctly when you opened the file. 47 MAXIMUM OPEN FILES The number of files opened in accelerated mode exceeded the number of buffers available in Btrieve's cache. When a file is opened in accelerated mode, Btrieve reserves one of its cache buffers for the file. Btrieve always reserves five empty buffers for index manipulation. Reconfigure the Btrieve Record Manager with a smaller page size parameter to allocate more buffers. 48 INVALID ALTERNATE SEQUENCE DEFINITION The first byte of an alternate collating sequence definition (the identification byte) did not contain the hexadecimal value AC. 49 KEY TYPE ERROR The application tried to create a file or a supplemental index with an invalid extended key type, or tried to assign an alternate collating sequence to a binary key or key segment. You can only assign an alternate collating sequence to a string, lstring, or zstring key type. This status code is also returned if you define a supplemental index requiring an alternate collating sequence, and no alternate collating sequence definition exists either in the file or in the key definition passed in the data buffer. 50 OWNER 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 INVALID OWNER There are two possible causes for this status code: - If your application received this status code after a Set Owner operation, the owner names specified in the key buffer and data buffer did not match. - If your application received this status code after an Open operation, the file you tried to open has an owner name assigned to it. Your application must specify the correct owner name in the data buffer. 52 ERROR WRITING CACHE While trying to make a cache buffer available, Btrieve tried to write data to a logical disk drive from a file that was previously opened in accelerated mode. An I/O error occurred during a write. 53 INVALID INTERFACE 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 v4.xx or later interface. 54 VARIABLE PAGE ERROR During a Step Direct operation, Btrieve could not read all or part of the variable length portion of a record. In this case, Btrieve returns as much data as possible to your application. This error usually indicates file damage to one or more pages in the file. 55 AUTOINCREMENT ERROR The application tried to specify either the segmented or duplicate attribute for an autoincrement key type. An autoincrement key cannot be part of another key and cannot allow duplicates. 56 INCOMPLETE INDEX A supplemental index was damaged. This can occur if a Create Supplemental Index operation or a Drop Supplemental Index operation is interrupted and does not run to completion. Perform a Drop Supplemental Index operation to completely remove the index from the file. 57 EXPANDED MEMORY ERROR This error is applicable only in the client-based DOS environment. Btrieve returns this status if it receives an error from the Expanded Memory Manager. This error usually means that Btrieve was unable to save or restore the memory mapping register context, indicating an incompatibility with another application that uses expanded memory. 58 COMPRESSION BUFFER 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 Btrieve Record Manager, specifying a higher value for the "Maximum Compressed Record Size" option. 59 FILE ALREADY EXISTS This status code is returned for the Create operation if you specified -1 in the key number parameter and the name of an existing file in the key buffer parameter. 60 REJECT COUNT REACHED Btrieve rejected the number of records specified by the reject count before an Extended Get/Step operation found the requested number of records which satisfy the filtering condition. Check the first two bytes of the data buffer returned for the number of records that were retrieved. 61 WORK SPACE TOO SMALL The Extended Get/Step operations use the pre-image buffer as work space. This error code indicates that the work space was not large enough to hold the filtering data buffer structure and the largest record to be received. The size of the work space is configurable (see the Btrieve Installation and Operation manual for more information). Check the first two bytes of the data buffer returned for the number of records that were retrieved. 62 INCORRECT DESCRIPTOR The descriptor (data buffer structure), which is passed for an extended Get or Step operation, is incorrect. 63 INVALID EXTENDED INSERT BUFFER Extended Insert provides an invalid buffer. Either the buffer length is less than five bytes, or the number of records specified is zero. 64 FILTER LIMIT REACHED During an Extended Get Next/Previous operation, a rejected record was reached. Furthermore, this rejected record is such that no other record can satisfy the given filtering condition, going in the direction specified by the operation. This is applicable only if the key specified by the key number is also used as the filtering field. 65 INCORRECT FIELD OFFSET The field offset in the extractor of an Extended Get/Step is invalid based on the length of the retrieved record. 74 AUTOMATIC TRANSACTION ABORT This is an informative status code and is applicable only in the server-based environment. Btrieve replaced an End Transaction operation with an Abort Transaction because an error had been detected for a TTS file inside the transaction. In addition, Btrieve executed the Abort Transaction operation. 78 DEADLOCK DETECTED Btrieve detected a deadlock condition. The application should clear all resources (such as aborting or ending the transaction or releasing all record locks) before proceeding. This allows the other applications to access the resources for which they are waiting. 80 CONFLICT The Update or Delete operation could not be performed because the record was changed by another application since your application read the record. Reread the record prior to resending an Update or Delete operation. 81 LOCK ERROR This error can result from one of two conditions: - The Btrieve lock table was full. Decrease the number of locks that your application uses or reconfigure the Btrieve Record Manager and specify a higher value for the "Maximum Number of Record Locks" option. - The application tried to unlock one record that was locked with a multiple record lock, and the record position stored in the data buffer did not correspond with any record that was locked in that file. 82 LOST POSITION When performing a Get Next or Get Previous on a key with duplicates, the application tried to retrieve a record that was deleted or whose key value was modified by another application. Re-establish positioning using a Get Equal or a Get Direct operation. 83 READ OUTSIDE TRANSACTION The application tried to delete or update a record within a transaction, but the record was not read within the transaction. If you are going to update or delete a record within a transaction, you must read the record within the transaction to ensure you have first obtained exclusive access to the data. 84 RECORD LOCKED The application tried to apply a nowait lock on a record that was currently locked by another application, or to apply a nowait lock on a file while another application held active record lock(s) in that file. If this status code is returned, your application can use either of the following two methods: - Retry the operation until it is successful. Under light to moderate network use, this may be the simplest and quickest solution. - Use the wait option (+100/+300) instead of the nowait option. 85 FILE LOCKED The application tried to apply a nowait record or file lock while another application held the file locked. This status code is also returned when the application tries to open a file outside of a transaction and the file is locked by some other application. If this status code is returned, your application can use either of the following two methods: - Retry the operation until it is successful. Under light to moderate network use, this may be the simplest and quickest solution. - Use the wait option (+100/+300) instead of the nowait option. 86 FILE TABLE FULL Btrieve's file table was full. Reconfigure Btrieve and specify a higher value for the "Maximum Number of Open Files" option. 87 HANDLE TABLE FULL This status code is applicable only in the server-based and Windows environments. Btrieve's handle table was full. Reconfigure the Btrieve and specify a higher value for the "Maximum Number of File Handles" option. 88 INCOMPATIBLE MODE ERROR The application tried to open a file in an incompatible mode. If the first application to access a file opens it in accelerated mode, all other applications must open it in accelerated mode. If the first application to access a file opens it in non-accelerated mode, other applications cannot open the file in accelerated mode. 90 REDIRECTED DEVICE TABLE FULL This status code is applicable only in the server-based environment. BREQUEST's redirection table or server routing table was full. This occurs if you attach to additional servers or map to additional drives after you loaded BREQUEST. Reload BREQUEST, specifying a larger number for the "Number of File Servers" or "Number of Mapped Drives" options (/S and /R respectively). This error also occurs if you detach a particular server and attach to a different server. Once a workstation has attached to a server, BREQUEST will not remove its name from the server routing table. 91 SERVER ERROR This status code is applicable only in the server-based environment. BREQUEST could not establish a session with the server. In NetWare environments, either the NetWare Btrieve Record Manager has not been started or the server was not active. Verify that the NetWare Btrieve Record Manager is active on the server in question. 92 TRANSACTION TABLE FULL This status code is applicable only in the server-based environment. The maximum number of active transactions was exceeded. Reconfigure Btrieve and specify a higher value for the "Number of Concurrent Transactions" option. 93 INCOMPATIBLE LOCK TYPE Your application tried to mix single record locks (+100/+200) and multiple record locks (+300/+400) in the same file at the same time. All locks of one type must be released before a lock of the other type can be executed. 94 PERMISSION ERROR Your application tried to open or create a file in a directory without the proper privileges. Btrieve does not override the network privileges assigned to users. 95 SESSION NO LONGER VALID This status code is applicable only in the server-based environment. The previously established session was no longer active due to an error at the workstation, the file server, or on the network. Verify that your workstation is still attached to the file server and then reload BREQUEST. 96 COMMUNICATIONS ENVIRONMENT ERROR This status code is applicable only in the server-based environment. This code occurs when loading Btrieve on a NetWare server. The SPX connection table is full. Reload SPX, specifying a higher value for the connection table. Refer to the NetWare system documentation for more information. 97 DATA MESSAGE TOO SMALL This status code is applicable only in the server-based environment. Your application tried to read or write a record which was longer than the Btrieve Record Manager or BREQUEST could handle. Reconfigure the Btrieve Record Manager and specify a higher value for the "Maximum Record Length" option. Reload BREQUEST and specify a higher value for the /D option. - For an Update, Insert, or Create operation, the application receives this error if the data buffer length it specifies for the record exceeds the length specified for the Btrieve Record Manager or BSERVER. - For a Get, Step, or Stat operation, the application receives this error if the value specified for the data buffer length is shorter than the length of the data Btrieve would return, regardless of the data buffer length specified in the program. 98 INTERNAL TRANSACTION ERROR This status code is applicable only in the server-based environment. An error has been detected while executing a previous operation on a NetWare TTS file. Therefore, no operation other than Abort Transaction (21) is allowed at this point. 99 THE REQUESTER CANNOT ACCESS THE NETWARE RUNTIME SERVER The DOS Requester returns this status code when NetWare Runtime server support is enabled (/C:1) and the Requester either detects no existing connection or cannot find a valid login username. If the Requester cannot find a login username other than SUPERVISOR, there is no valid name to pass. 100 NO CACHE BUFFERS ARE AVAILABLE Btrieve has used all the cache buffers it allocated at load time. Using the Setup utility, you can increase the value for the Cache Allocation configuration option. Alternatively, you can change the Number of Remote Sessions configuration option to decrease the number of concurrent Btrieve users. For more information, refer to Chapter 3, "Installing and Configuring Btrieve," in the Btrieve Installation and Operation manual. 101 INSUFFICIENT OPERATING SYSTEM MEMORY IS AVAILABLE There is not enough operating system memory available to perform the requested operation. Decrease the value for the Cache Allocation configuration option (using the Setup utility), decrease the number of concurrent Btrieve users (using the Number of Remote Sessions configuration option in the Setup utility), or add memory to the server. For more information on the configuration options, refer to Chapter 3, "Installing and Configuring Btrieve," in the Btrieve Installation and Operation manual. 102 INSUFFICIENT STACK SPACE IS AVAILABLE Btrieve 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. Only the NLM applications calling Btrieve on the local server get this message. 103 THE CHUNK OFFSET IS TOO BIG A Get Direct/Chunk operation has specified an offset beyond the end of the record, either explicitly or through the use of the next-in-record bias to the subfunction value. Unless Btrieve returns this status 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 (and therefore how many chunks) Btrieve retrieved. This code can also be returned by the Update Chunk operation when the specified offset is more than one byte beyond the end of the record. However, in this situation, Status Code 103 indicates that Btrieve made no changes to the record. 104 THE LOCALE INFORMATION COULD NOT BE FOUND The Create or Create Index function 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. Check 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) The application specified that a Btrieve file should be created with Variable-tail Allocation Tables (VATs); however, the application failed to specify that the file was to use variable-length records (a precondition for files to use VATs). This status applies to key-only files as well as regular data files. 106 THE OPERATION CANNOT GET THE NEXT CHUNK The 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 (but prior to this call), the target record was deleted. 107 CHUNK UPDATES/RETRIEVALS CANNOT BE PERFORMED ON THE FILE The application tried to use either a Get Direct/Chunk operation or an Update Chunk operation on a pre-v6.0 formatted file. 2.2 Client-Based Btrieve for OS/2 and Windows Status Codes Client-based Btrieve may return the following status codes in an OS/2 or Windows environment. 1001 THE MULTIPLE LOCKS OPTION IS OUT OF RANGE The number specified for the Multiple Locks configuration option must be between 1 and 255, inclusive. 1002 BTRIEVE CANNOT ALLOCATE THE MEMORY NEEDED Make sure that the workstation has enough memory to load all the programs it requires. 1003 THE MEMORY SIZE IS TOO SMALL Make sure the value for the Memory Size configuration option is large enough to accommodate the required cache size. 1004 THE PAGE SIZE OPTION IS OUT OF RANGE The value of the Page Size configuration option must be an even multiple of 512, and it must be between 512 and 4,096, inclusive. 1005 THE PRE-IMAGE FILE DRIVE OPTION IS INVALID You must specify a valid drive letter for the Pre-Image File Drive configuration option. Note: Pre-image files are used only for files created by Btrieve versions earlier than v6.x, or by v6.x if it was loaded with the Create Btrieve Files in Pre v6.x Format configuration option set to Yes. 1006 THE PRE-IMAGE BUFFER SIZE OPTION IS OUT OF RANGE The Pre-Image Buffer Size configuration option must be between 1 and 64, inclusive. Note: Pre-image files are used only for files created by Btrieve versions earlier than v6.x, or by v6.x if it was loaded with the Create Btrieve Files in Pre v6.x Format configuration option set to Yes. 1007 THE OPEN FILES OPTION IS OUT OF RANGE The Open Files configuration option must be between 1 and 255, inclusive. 1008 THE CONFIGURATION OPTIONS ARE INVALID The configuration options specified contain invalid or unidentifiable values. For more information on configuration options, refer to the installation and operation manual for your operating environment. 1009 THE TRANSACTION FILENAME OPTION IS INVALID The filename specified for the Transaction Filename configuration option is not valid. Check to make sure that the transaction filename is correct. 1011 THE COMPRESSION BUFFER SIZE SPECIFIED IS OUT OF RANGE The Compression Buffer Size configuration option must be between 1 and 64, inclusive. 1013 THE TASK TABLE IS FULL (WINDOWS ONLY) The Btrieve DLL may return this status code if the task entry table is full. You can remedy this situation by increasing the number of available task entries; use the tasks initialization option (tasks=xxx) under the [BTRIEVE] or [BREQUESTDPMI] headings in NOVDB.INI. The minimum value for this option is 1; the maximum value is 255. 1014 THE APPLICATION ENCOUNTERED A STOP WARNING WBTRVSTOP () returns this status code if the application still has open files or an active transaction. The application must close all files and end all transactions before calling WBTRVSTOP (). 1015 A POINTER PARAMETER IS INVALID One of the pointer parameters passed into Btrieve is invalid. 1016 BTRIEVE IS ALREADY INITIALIZED The Btrieve DLL may return this status code if an attempt is made to initialize Btrieve when it is already initialized. To reinitialize Btrieve, close all files, end/abort all transactions, and call WBTRVSTOP () before calling the initialization function. 1017 THE BTRIEVE REQUESTER FOR WINDOWS CANNOT FIND WBTRVRES.DLL WBTRCALL.DLL returns this status code when it cannot find the resource file WBTRVRES.DLL. You can remedy this situation by placing a copy of the WBTRVRES.DLL file in the same directory as the WBTRCALL.DLL file. 2.3 Btrieve Requester Status Codes This section lists the status codes that the Btrieve Requesters may generate. 2001 THE MEMORY ALLOCATION IS INSUFFICIENT In an OS/2 environment, the Requester cannot allocate enough memory for the parameters specified with the BRQPARMS environment variable. In a DOS environment, reduce the value specified for the /D configuration option. 2002 THE OPTION IS INVALID OR OUT OF RANGE In an OS/2 environment, either one of the options specified with the BRQPARMS environment variable is invalid (such as /P instead of /D) or the value specified for a parameter is out of range. Check the SET BRQPARMS statements to make sure it is correct. 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 version of WBTRCALL.DLL installed at the workstation does not allow access to local files. 2004 SPX IS NOT INSTALLED Install the NetWare SPX v1.3 or later communications software for OS/2. 2005 AN INCORRECT VERSION OF SPX IS INSTALLED Install the NetWare SPX v1.3 or later communications software for OS/2. 2006 THERE IS NO AVAILABLE SPX CONNECTION SPX has already established the maximum number of sessions it can handle. To increase the maximum, edit the NET.CFG file. Refer to your NetWare documentation for more information on NET.CFG. 2007 A POINTER PARAMETER IS INVALID One of the pointer parameters passed to Btrieve is invalid. Check the program to ensure that the pointer parameters are correct.