home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / LAI-3131.ZIP / DOC.ZIP / BTRIEVE.TXT next >
Text File  |  1994-07-30  |  45KB  |  957 lines

  1. BTRIEVE.TXT Headings:
  2. 1.0  Appendix C  Using Brequest
  3.     1.1  Using the Btrieve NLM
  4.         1.1.1 Using the NLM with EQUIP
  5.     1.2  Using Brequest in a Login Script
  6.     1.3  Using the Btrieve VAP
  7. 2.0  Appendix D  Btrieve Status Codes
  8.     2.1  Btrieve Status Codes
  9.     2.2  Client-Based Btrieve for  OS/2 and Windows Status Codes
  10.     2.3  Btrieve Requester Status Codes
  11.  
  12.  
  13.  
  14. 1.0  Appendix C  Using Brequest
  15.  
  16. Appendix B discussed error messages and explanations. This appendix discusses 
  17. the use and configuration of the server-based Btrieve record manager, 
  18. BREQUEST.
  19.  
  20.  
  21. 1.1  Using the Btrieve NLM
  22.  
  23. The Btrieve record manager must be loaded before running the SiteMeter EQUIP 
  24. program. It is highly recommended that you use the server-based BREQUEST 
  25. program while running EQUIP. This appendix offers recommendations on setting 
  26. up and using the Btrieve NLM. 
  27.  
  28. NOTE: a - When using BREQUEST, version 6.10 or greater is required.
  29. b - When using BREQUEST, BSPXCOM and BROUTER must also be loaded on the 
  30. fileserver. For details on loading these programs, refer to your Novell 
  31. documentation.
  32.  
  33. 1.1.1 Using the NLM with EQUIP
  34.  
  35. Using BREQUEST, as opposed to BTRIEVE, will improve the performance of data 
  36. collection, auditing and reporting by at least 50% and as much as 500%. An 
  37. additional advantage is the savings in local (client) memory--BTRIEVE.EXE 
  38. can occupy from 50-85K of conventional memory, whereas BREQUEST.EXE can 
  39. occupy approximately 31-45K. The exact amount of memory required for both 
  40. programs depend on the specified command line parameters.
  41.  
  42. Use the following procedure to configure the Btrieve NLM.
  43.  
  44. 1.  To configure the NLM, run BSETUP.NLM.
  45.  
  46.     At the file server console prompt, type:
  47.     LOAD BSETUP <ENTER>
  48.  
  49. 2.  Choose Set Btrieve Configuration to verify that the following options 
  50.     are defined.
  51.  
  52.     The values provided below are the minimum values required; your current 
  53.     values may be set higher.
  54.     o  Number of Open Files: = 22  (default = 20)
  55.     o  Number of Transactions: = 1  (default = 0)
  56.     o  Largest Record Size: = 17000  (default = 8192)
  57.     o  Largest Page Size: = 4096  (default = 4096)
  58.     
  59. NOTE: All other BSETUP options can remain unchanged.
  60.  
  61. 3.  Save the configuration, and exit BSETUP.
  62.  
  63.     BSETUP writes the configuration changes to the BSTART.NCF file. The 
  64.     changes do not take effect until the next time the Btrieve NLM is loaded. 
  65.  
  66. 4.  To load the NLM, run BSTART.
  67.  
  68.     At the file server console prompt, type:
  69.     BSTART <ENTER>
  70.  
  71.     BSTART is an NCF file which loads both BTRIEVE.NLM and BSPXCOM.NLM.
  72.  
  73. 5.  To unload the Btrieve NLM, issue the BSTOP command.
  74.  
  75.     If the Btrieve NLM was loaded when changes were made in BSETUP, you need 
  76.     to unload Btrieve and then reload the NLMs in order for the changes to 
  77.     take effect.
  78.  
  79.     For example, at the console prompt, type:
  80.     BSTOP <ENTER>
  81.     BSTART <ENTER>
  82.  
  83.  
  84. 1.2  Using Brequest in a Login Script
  85.  
  86. To ensure that EQUIP is executed on a regular basis, the EQUIP command can 
  87. be placed in your system login script. Because the Btrieve database must be 
  88. loaded before running EQUIP, a Btrieve command must also be placed in the 
  89. login script. EQUIP executes much faster when used in conjunction with 
  90. Brequest and the BTRIEVE NLM; therefore, the login script should contain the 
  91. BREQUEST.EXE command. 
  92.  
  93. The following example illustrates how EQUIP can be run from the system login 
  94. script, using BREQUEST. Comments are indicated in the text between the angle 
  95. brackets.
  96.  
  97.     MAP F:=FS/SYS:LANINV <maps drive to LANINV dir>
  98.     DRIVE F: <changes to the LANINV dir>
  99.     #BREQUEST /D:17000
  100.     #EQUIP <specify scan parameters>
  101.     #ENDBTRV
  102.  
  103. NOTES: a -  Loading SPX -  LAN Inventory requires SPX to be loaded at each 
  104. workstation. Brequest communicates with BSPXCOM.NLM via SPX. BSPXCOM, in turn, 
  105. passes all requests from Brequest to the BTRIEVE NLM. If SPX is not loaded 
  106. at a workstation, that workstation has no communication whatsoever with the 
  107. Btrieve record manager. If you have loaded Brequest and are getting "BTRIEVE 
  108. Record Manager Not Loaded" messages, make sure that SPX is loaded. This 
  109. normally only becomes an issue on workstations that load the ODI drivers 
  110. because the ODI drivers can optionally load SPX.
  111.  
  112. b - Brequest /D switch - The /D: parameter specifies the size of the "data 
  113. message buffer length." This buffer refers to the maximum record size that 
  114. the NLM will transmit to the workstation. This switch should be set to 
  115. 17000 for the purposes of LAN Inventory.
  116.  
  117. c -  Brequest /L switch - When running SDUPDATE.EXE in a DOS box, you must 
  118. load another session of BREQUEST by entering the following command: 
  119.     BREQUEST /D:17000 /L
  120. After running the program, end the additional session by issuing the ENDBTRV 
  121. command.
  122.  
  123. d - Brequest Error 87 - If you receive an "Error 87" from Btrieve while using 
  124. Brequest, increase the 'Number Of Open Files' setting in BSETUP.
  125.  
  126.  
  127. 1.3  Using the Btrieve VAP 
  128.  
  129. All of the options and suggestions regarding the Btrieve NLM also apply to 
  130. the Btrieve VAP. The BSETUP parameters, Brequest parameters, and Windows 
  131. requester initialization settings are identical.
  132.  
  133. NOTE: When using the Btrieve VAP, the file server needs to be rebooted in 
  134. order for any changes in BSETUP to take effect. 
  135.  
  136.  
  137.  
  138. 2.0  Appendix D  Btrieve Status Codes
  139.  
  140. Appendix C described how to configure and use Btrieve. This appendix lists 
  141. the return status codes for Novell's Btrieve Record Manager.
  142.  
  143.  
  144. 2.1  Btrieve Status Codes
  145.  
  146. Btrieve returns a status code after each operation an application performs. 
  147. If the operation was successful, Btrieve returns status code 0. If the 
  148. operation was not successful, Btrieve will return one of the nonzero status 
  149. codes described in this section.
  150.  
  151. If Btrieve returns a code that is not contained in this section, refer to 
  152. your Btrieve Installation and Operation Manual for error codes from the 
  153. utilities.
  154.  
  155. 01  INVALID OPERATION
  156.     The operation parameter specified in the call is invalid.
  157.  
  158. 02  I/O ERROR
  159.     An error occurred during disk read/write. This status code indicates 
  160.     that the file has been damaged and must be recreated, or that the 
  161.     file specified on the open call was not created. This status code 
  162.     also occurs if the application passed an invalid position block.
  163.  
  164. 03  FILE NOT OPEN
  165.     The operation cannot execute because the file is not open. A 
  166.     successful Open operation must be performed before Btrieve can 
  167.     process any other operations. This status code may also occur if the 
  168.     application passed an invalid position block for the file.
  169.  
  170. 04  KEY VALUE NOT FOUND
  171.     The specified key value in the index path was not found.
  172.  
  173. 05  DUPLICATE KEY VALUE
  174.     A record with a key field containing a duplicate key value cannot be 
  175.     added to an index that does not allow duplicate values.
  176.  
  177. 06  INVALID KEY NUMBER
  178.     The value stored in the key number parameter was not valid for the 
  179.     file being accessed. The key number must correspond to one of the 
  180.     keys defined when the file was created or to a supplemental index.
  181.  
  182. 07  DIFFERENT KEY NUMBER
  183.     The key number parameter changed before a Get Next, Get Next 
  184.     Extended, Get Previous, Get Previous Extended, Update, or Delete 
  185.     operation. The operation specified requires the same key number 
  186.     parameter as the previous operation because Btrieve uses positioning 
  187.     information relative to the previous key number.
  188.  
  189.     If you need to change key numbers between consecutive Get Next, Get 
  190.     Next Extended, Get Previous, or Get Previous Extended operations, use 
  191.     a Get Position operation followed by a Get Direct operation to 
  192.     re-establish positioning for the new index path.
  193.  
  194.  
  195. 08  INVALID POSITIONING
  196.     The current position must be established to update or delete a 
  197.     record. Perform a Get or Step operation to establish the current 
  198.     position. This status code may also occur if the application passed 
  199.     an invalid position block for the file.
  200.  
  201. 09  END-OF-FILE
  202.     The operation tried to read past the file boundaries (end-of-file or 
  203.     start-of-file). When reading a file in ascending order according to 
  204.     an index path, Btrieve returns the last record in that index path. 
  205.     When reading a file in descending order according to an index path, 
  206.     Btrieve returns the first record in the index path.
  207.  
  208.     The Get Extended and Step Extended operations return this status code 
  209.     if the number of records satisfying the filtering condition is less 
  210.     than the number of specified records to be returned and the reject 
  211.     count has not been reached.
  212.  
  213. 10  MODIFIABLE KEY VALUE ERROR
  214.     The operation tried to modify a key field which is defined as 
  215.     non-modifiable.
  216.  
  217. 11  INVALID FILENAME
  218.     The filename specified does not conform to file naming conventions.
  219.  
  220. 12  FILE NOT FOUND
  221.     The filename specified does not exist. Check the key buffer parameter 
  222.     to make sure the pathname is terminated with a blank or a binary zero.
  223.  
  224. 13  EXTENDED FILE ERROR
  225.     Btrieve could not find the extension file for an extended file which 
  226.     the application tried to open. Extension files must be loaded on the 
  227.     logical disk drive specified when the extension was created. Both the 
  228.     primary file and its extension file must be on-line to access an 
  229.     extended file.
  230.  
  231. 14  PRE-IMAGE OPEN ERROR
  232.     The pre-image file could not be created or opened. There are three 
  233.     possible causes for this error.
  234.  
  235.     Btrieve could not create a new pre-image file because your disk 
  236.     directory is full. Btrieve must be able to create a pre-image file.
  237.  
  238.     Btrieve could not open the pre-image file to restore file integrity. 
  239.     If the pre-image file was erased or damaged, Btrieve cannot restore 
  240.     the file's integrity. In this case, either use the RECOVER command 
  241.     in the BUTIL utility to retrieve the damaged file's data records in 
  242.     a sequential file, or replace the file with its most recent backup.
  243.  
  244.     Btrieve could not assign a handle to the pre-image file because the 
  245.     Btrieve was not started by a user with access rights to the pre-image 
  246.     file.
  247.  
  248. 15  PRE-IMAGE I/O ERROR
  249.     An I/O error occurred during the pre-imaging function. Either the 
  250.     disk is full or the pre-image file is damaged.
  251.  
  252.     If the disk is full, erase any unnecessary files or extend the file 
  253.     to gain additional disk space.
  254.  
  255.     If the pre-image file is damaged, the integrity of the Btrieve file 
  256.     cannot be ensured. Either use the RECOVER command in the BUTIL 
  257.     utility to retrieve the damaged file's data records in a sequential 
  258.     file, or replace the file with its most recent backup.
  259.  
  260. 16  EXPANSION ERROR
  261.     An error occurred while writing the directory structure to disk 
  262.     prior to the creation of the expanded file partition. Either Btrieve 
  263.     could not close the file, or a new page was added to the file and 
  264.     Btrieve could not close and reopen the file to update the directory 
  265.     structure. Check for a disk hardware failure.
  266.  
  267. 17  CLOSE ERROR
  268.     An error occurred while writing the directory structure to disk prior 
  269.     to closing the file. Either Btrieve could not close the file, or a new 
  270.     page was added to the file and Btrieve could not close and reopen the 
  271.     file to update the directory structure. Check for a disk hardware 
  272.     failure. This status code also occurs if the application passed an 
  273.     invalid position block for the file.
  274.  
  275. 18  DISK FULL
  276.     The disk is full and the file could not be expanded to accommodate 
  277.     the insertion. Either erase any unnecessary files or extend the file 
  278.     to gain additional disk space.
  279.  
  280. 19  UNRECOVERABLE ERROR
  281.     An unrecoverable error has occurred. File integrity cannot be ensured. 
  282.     Either use the RECOVER command in the BUTIL utility to retrieve the 
  283.     damaged file's data records in a sequential file, or replace the 
  284.     Btrieve with its most recent backup.
  285.  
  286. 20  RECORD MANAGER INACTIVE
  287.     A request has been made before the Record Manager has been started. 
  288.     Restart the Record Manager.
  289.  
  290.     In network environments, the operation was not processed because 
  291.     BREQUEST was not loaded. Reload BREQUEST.
  292.  
  293. 21  KEY BUFFER TOO SHORT
  294.     The key buffer parameter was not long enough to accommodate the key 
  295.     field for the index path requested. Verify that the length of the key 
  296.     buffer equals the defined length of the key specified in the key 
  297.     number parameter. This status code can be returned only by certain 
  298.     interfaces.
  299.  
  300. 22  DATA BUFFER LENGTH
  301.     The data buffer parameter was not long enough to accommodate the 
  302.     length of the data record defined when the file was created. Verify 
  303.     that the length of the data buffer is at least as long as the file's 
  304.     defined record length.
  305.  
  306.     For Get or Step operations, if the data buffer is too short to 
  307.     contain the fixed length portion of the record, Btrieve does not 
  308.     return any data to the data buffer. If the record is a variable 
  309.     length record and the data buffer is too short to contain the entire 
  310.     variable length portion of the record, Btrieve returns as much data 
  311.     as it can and a status code 22, indicating that it could not return 
  312.     the entire record.
  313.  
  314.     For the Insert operation, Btrieve does not insert the record if the 
  315.     data buffer is shorter than the fixed length portion of the record.
  316.  
  317.     For the Update operation, if the data buffer is too short to contain 
  318.     the fixed length portion of any record, Btrieve does not update the 
  319.     record.
  320.  
  321.     For the Create, Stat, and Create Supplemental Index operations, a 
  322.     status code 22 indicates that the data buffer is not long enough to 
  323.     contain all the file and key specifications, and the alternate 
  324.     collating sequence definition, if specified.
  325.  
  326. 23  POSITION BLOCK LENGTH
  327.     The position block parameter was not 128 bytes long. This error can 
  328.     only be detected using certain language interfaces.
  329.  
  330. 24  PAGE SIZE ERROR
  331.     The page size was invalid. The page size must be a multiple of 512 
  332.     bytes but must be no larger than 4096 bytes. To solve this, run or 
  333.     load BSETUP at the server. Change the page size to 4096 and the 
  334.     largest record size to 17000. See Appendix C for more information.
  335.  
  336. 25  CREATE I/O ERROR    
  337.     The file specified could not be created.  Possible causes are a     
  338.     full disk directory or a full disk.  If you are creating a file     
  339.     over an existing file, Btrieve returns this status code if the     
  340.     existing file is open or the operating system does not allow the     
  341.     creation for some other reason (for example, a NetWare file is     
  342.     flagged transactional).    
  343.     
  344. 26  NUMBER OF KEYS    
  345.     The number of keys specified for the page size was invalid.      
  346.     For standard Btrieve files with a page size of 512 bytes, the     
  347.     number of key segments must be between 1 and 8.  For larger page     
  348.     sizes, the number of key segments must be between 1 and 24.  You     
  349.     must define at least one key without the null attribute.    
  350.     
  351. 27  INVALID KEY POSITION    
  352.     The key field position specified exceeded the defined record     
  353.     length for the file.  Either the key position was greater than the     
  354.     record length or the key position plus the key length exceeded the     
  355.     record length.  For key-only files, the key must begin in the first     
  356.     byte of the record (position 1).    
  357.     
  358. 28  INVALID RECORD LENGTH    
  359.     The record length was invalid.  The record length specified     
  360.     (plus overhead for duplicates) must be less than or equal to the     
  361.     page size minus 6 or greater than or equal to 4 bytes long.    
  362.     
  363. 29  INVALID KEY LENGTH    
  364.     The key length was invalid.  The key length specified must be     
  365.     greater than zero and cannot exceed 255.  The length of a binary     
  366.     key must be even.  Btrieve requires that each key page in the     
  367.     file is large enough to hold at least eight keys.    
  368.     
  369.     If the page size is too small to accommodate eight occurrences of     
  370.     the specified key length (plus overhead), either increase the     
  371.     file's page size, or decrease the key length.    
  372.     
  373. 30  NOT A BTRIEVE FILE    
  374.     The filename specified is not a valid Btrieve file. Either the     
  375.     file was not created by Btrieve, or it was created by an earlier     
  376.     version of Btrieve.    
  377.     
  378.     Another possibility is that the first page of the file, which     
  379.     contains the File Control Record, is damaged.    
  380.     
  381. 31  FILE ALREADY EXTENDED    
  382.     The file specified has already been extended.  A file can be     
  383.     extended only once.    
  384.     
  385. 32  EXTEND I/O ERROR    
  386.     The file could not be extended.  Possible causes are that the     
  387.     directory is full, the disk is full, or the disk is write protected.    
  388.     
  389. 34  INVALID EXTENSION NAME    
  390.     The filename specified for the extended partition was invalid.    
  391.     
  392. 35  DIRECTORY ERROR    
  393.     An error occurred while changing to the directory that contains     
  394.     the Btrieve file.  Either the drive specified in the Get Directory     
  395.     operation does not exist or the pathname specified in a Set     
  396.     Directory operation was invalid.    
  397.     
  398. 36  TRANSACTION ERROR    
  399.     A Begin Transaction operation could not be performed because no     
  400.     transactions were specified when the Btrieve was initialized.    
  401.     
  402. 37  TRANSACTION IS ACTIVE    
  403.     A Begin Transaction was issued while another transaction was active     
  404.     at that station.  Transactions cannot be nested.    
  405.     
  406. 38  TRANSACTION CONTROL FILE I/O ERROR    
  407.     An error occurred when Btrieve tried to write to the transaction     
  408.     control file.  Possible causes were that the disk was full, the     
  409.     disk was write protected, or the transaction control file (which     
  410.     was created when the Btrieve was loaded) was deleted.    
  411.     
  412. 39  END/ABORT TRANSACTION ERROR    
  413.     An End or Abort Transaction operation was issued without a     
  414.     corresponding Begin Transaction operation.    
  415.     
  416. 40  TRANSACTION MAX FILES    
  417.     The application tried to update more than the maximum number of     
  418.     files allowed within a transaction.  The maximum number of     
  419.     different files that can be updated during a logical transaction     
  420.     is set when Btrieve is configured.  Refer to your Btrieve     
  421.     Installation and Operation manual for more information on     
  422.     configuration.    
  423.     
  424. 41  OPERATION NOT ALLOWED    
  425.     The application tried to perform an operation that is not allowed     
  426.     at this time.  Some operations are not allowed under certain     
  427.     operating conditions.  For example, Btrieve returns this status     
  428.     code if you attempt to perform a Step, Update, or Delete operation     
  429.     on a key-only file or a Get operation on a data only file.    
  430.     
  431.     lso, certain operations are prohibited during transactions because     
  432.     they have too great an effect on the pre-image file or on Btrieve's     
  433.     performance.  These operations include Close, Set or Clear Owner,     
  434.     Extend, Create Supplemental Index, and Drop Supplemental Index.    
  435.     
  436. 42  INCOMPLETE ACCELERATED ACCESS    
  437.     The application tried to open a file that was previously accessed     
  438.     in accelerated mode and never successfully closed.  The file's     
  439.     integrity cannot be ensured.  Either use the RECOVER command in     
  440.     the BUTIL utility to build a new file or restore the file using     
  441.     the latest backup.    
  442.     
  443. 43  INVALID RECORD ADDRESS    
  444.     The record address specified for a Get Direct operation was invalid.      
  445.     The address is outside of the file's boundaries; it is not on a     
  446.     record boundary within a data page, or on a data page.  The 4-byte     
  447.     address you specify for a Get Direct operation should be one that     
  448.     was obtained by a Get Position operation.    
  449.     
  450. 44  NULL KEY PATH    
  451.     The application tried to use the Get Direct operation to establish     
  452.     an index path for a key whose value is null in the corresponding     
  453.     record.  Btrieve cannot establish positioning based on a null key     
  454.     value.    
  455.     
  456. 45  INCONSISTENT KEY FLAGS    
  457.     The key flags specification on a Create operation was inconsistent.      
  458.     If a key has multiple segments, the duplicate, modifiable, and     
  459.     null attributes should be the same for each segment in the key.    
  460.     
  461. 46  ACCESS TO FILE DENIED    
  462.     The application opened a file in read-only mode and tried to     
  463.     perform an Update, Delete, or Insert on that file.  Another     
  464.     possible cause is that the owner name required for updates was     
  465.     not specified correctly when you opened the file.    
  466.     
  467. 47  MAXIMUM OPEN FILES    
  468.     The number of files opened in accelerated mode exceeded the number     
  469.     of buffers available in Btrieve's cache.  When a file is opened in     
  470.     accelerated mode, Btrieve reserves one of its cache buffers for the     
  471.     file.  Btrieve always reserves five empty buffers for index     
  472.     manipulation.  Reconfigure the Btrieve Record Manager with a     
  473.     smaller page size parameter to allocate more buffers.    
  474.     
  475. 48  INVALID ALTERNATE SEQUENCE DEFINITION    
  476.     The first byte of an alternate collating sequence definition     
  477.     (the identification byte) did not contain the hexadecimal value AC.    
  478.     
  479. 49  KEY TYPE ERROR    
  480.     The application tried to create a file or a supplemental index     
  481.     with an invalid extended key type, or tried to assign an alternate     
  482.     collating sequence to a binary key or key segment.  You can only     
  483.     assign an alternate collating sequence to a string, lstring, or     
  484.     zstring key type.    
  485.     
  486.     This status code is also returned if you define a supplemental     
  487.     index requiring an alternate collating sequence, and no alternate     
  488.     collating sequence definition exists either in the file or in the     
  489.     key definition passed in the data buffer.    
  490.     
  491. 50  OWNER ALREADY SET    
  492.     The application tried to perform a Set Owner operation on a file     
  493.     that already has an owner.  Use the Clear Owner operation to     
  494.     remove the previous owner before specifying a new one.    
  495.     
  496. 51  INVALID OWNER    
  497.     There are two possible causes for this status code:    
  498.         - If your application received this status code after     
  499.         a Set Owner operation, the owner names specified in     
  500.         the key buffer and data buffer did not match.    
  501.         - If your application received this status code after     
  502.         an Open operation, the file you tried to open has an     
  503.         owner name assigned to it.  Your application must     
  504.         specify the correct owner name in the data buffer.    
  505.             
  506. 52  ERROR WRITING CACHE    
  507.     While trying to make a cache buffer available, Btrieve tried to     
  508.     write data to a logical disk drive from a file that was previously     
  509.     opened in accelerated mode.  An I/O error occurred during a write.    
  510.     
  511. 53  INVALID INTERFACE    
  512.     An application tried to access a file containing variable length     
  513.     records with a language interface from Btrieve v3.15 or earlier.      
  514.     To access files with variable length records, you must use v4.xx or     
  515.     later interface.    
  516.     
  517. 54  VARIABLE PAGE ERROR    
  518.     During a Step Direct operation, Btrieve could not read all or part     
  519.     of the variable length portion of a record.  In this case, Btrieve     
  520.     returns as much data as possible to your application.  This error     
  521.     usually indicates file damage to one or more pages in the file.    
  522.     
  523. 55  AUTOINCREMENT ERROR    
  524.     The application tried to specify either the segmented or duplicate     
  525.     attribute for an autoincrement key type.  An autoincrement key     
  526.     cannot be part of another key and cannot allow duplicates.    
  527.     
  528. 56  INCOMPLETE INDEX    
  529.     A supplemental index was damaged.  This can occur if a Create     
  530.     Supplemental Index operation or a Drop Supplemental Index     
  531.     operation is interrupted and does not run to completion.  Perform     
  532.     a Drop Supplemental Index operation to completely remove the index     
  533.     from the file.    
  534.     
  535. 57  EXPANDED MEMORY ERROR    
  536.     This error is applicable only in the client-based DOS environment.      
  537.     Btrieve returns this status if it receives an error from the     
  538.     Expanded Memory Manager.  This error usually means that Btrieve     
  539.     was unable to save or restore the memory mapping register context,     
  540.     indicating an incompatibility with another application that uses     
  541.     expanded memory.    
  542.     
  543. 58  COMPRESSION BUFFER TOO SHORT    
  544.     The application tried to read or write a record that is longer     
  545.     than the value specified for the size of the compression buffer.      
  546.     Reconfigure the Btrieve Record Manager, specifying a higher value     
  547.     for the "Maximum Compressed Record Size" option.    
  548.     
  549. 59  FILE ALREADY EXISTS    
  550.     This status code is returned for the Create operation if you     
  551.     specified -1 in the key number parameter and the name of an     
  552.     existing file in the key buffer parameter.    
  553.     
  554. 60  REJECT COUNT REACHED    
  555.     Btrieve rejected the number of records specified by the reject     
  556.     count before an Extended Get/Step operation found the requested     
  557.     number of records which satisfy the filtering condition.  Check     
  558.     the first two bytes of the data buffer returned for the number of     
  559.     records that were retrieved.    
  560.     
  561. 61  WORK SPACE TOO SMALL    
  562.     The Extended Get/Step operations use the pre-image buffer as     
  563.     work space.  This error code indicates that the work space was     
  564.     not large enough to hold the filtering data buffer structure and     
  565.     the largest record to be received.  The size of the work space is     
  566.     configurable (see the Btrieve Installation and Operation manual for     
  567.     more information).  Check the first two bytes of the data buffer     
  568.     returned for the number of records that were retrieved.    
  569.     
  570. 62  INCORRECT DESCRIPTOR    
  571.     The descriptor (data buffer structure), which is passed for an     
  572.     extended Get or Step operation, is incorrect.    
  573.     
  574. 63  INVALID EXTENDED INSERT BUFFER    
  575.     Extended Insert provides an invalid buffer.  Either the buffer     
  576.     length is less than five bytes, or the number of records specified     
  577.     is zero.    
  578.     
  579. 64  FILTER LIMIT REACHED    
  580.     During an Extended Get Next/Previous operation, a rejected record     
  581.     was reached.  Furthermore, this rejected record is such that no     
  582.     other record can satisfy the given filtering condition, going in     
  583.     the direction specified by the operation.  This is applicable only     
  584.     if the key specified by the key number is also used as the filtering     
  585.     field.    
  586.     
  587. 65  INCORRECT FIELD OFFSET    
  588.     The field offset in the extractor of an Extended Get/Step is invalid     
  589.     based on the length of the retrieved record.    
  590.     
  591. 74  AUTOMATIC TRANSACTION ABORT    
  592.     This is an informative status code and is applicable only in the     
  593.     server-based environment.  Btrieve replaced an End Transaction     
  594.     operation with an Abort Transaction because an error had been     
  595.     detected for a TTS file inside the transaction.  In addition,     
  596.     Btrieve executed the Abort Transaction operation.    
  597.     
  598. 78  DEADLOCK DETECTED    
  599.     Btrieve detected a deadlock condition.  The application should     
  600.     clear all resources (such as aborting or ending the transaction or     
  601.     releasing all record locks) before proceeding.  This allows the other     
  602.     applications to access the resources for which they are waiting.    
  603.     
  604. 80  CONFLICT    
  605.     The Update or Delete operation could not be performed because the     
  606.     record was changed by another application since your application     
  607.     read the record.  Reread the record prior to resending an Update or     
  608.     Delete operation.    
  609.     
  610. 81  LOCK ERROR    
  611.     This error can result from one of two conditions:    
  612.         -  The Btrieve lock table was full.  Decrease the number     
  613.         of locks that your application uses or reconfigure the     
  614.         Btrieve Record Manager and specify a higher value for the     
  615.         "Maximum Number of Record Locks" option.    
  616.         -  The application tried to unlock one record that was     
  617.         locked with a multiple record lock, and the record position     
  618.         stored in the data buffer did not correspond with any     
  619.         record that was locked in that file.    
  620.     
  621. 82  LOST POSITION    
  622.     When performing a Get Next or Get Previous on a key with duplicates,     
  623.     the application tried to retrieve a record that was deleted or     
  624.     whose key value was modified by another application.  Re-establish     
  625.     positioning using a Get Equal or a Get Direct operation.    
  626.     
  627. 83  READ OUTSIDE TRANSACTION    
  628.     The application tried to delete or update a record within a     
  629.     transaction, but the record was not read within the transaction.      
  630.     If you are going to update or delete a record within a transaction,     
  631.     you must read the record within the transaction to ensure you have     
  632.     first obtained exclusive access to the data.    
  633.     
  634. 84  RECORD LOCKED    
  635.     The application tried to apply a nowait lock on a record that was     
  636.     currently locked by another application, or to apply a nowait lock     
  637.     on a file while another application held active record lock(s) in     
  638.     that file.    
  639.     
  640.     If this status code is returned, your application can use either     
  641.     of the following two methods:    
  642.         - Retry the operation until it is successful.  Under light     
  643.         to moderate network use, this may be the simplest and     
  644.         quickest solution.    
  645.         - Use the wait option (+100/+300) instead of the nowait     
  646.         option.    
  647.     
  648. 85  FILE LOCKED    
  649.     The application tried to apply a nowait record or file lock while     
  650.     another application held the file locked.  This status code is     
  651.     also returned when the application tries to open a file outside of     
  652.     a transaction and the file is locked by some other application.    
  653.     
  654.     If this status code is returned, your application can use either     
  655.     of the following two methods:    
  656.         - Retry the operation until it is successful.  Under     
  657.         light to moderate network use, this may be the simplest     
  658.         and quickest solution.    
  659.         - Use the wait option (+100/+300) instead of the nowait     
  660.         option.    
  661.     
  662. 86  FILE TABLE FULL    
  663.     Btrieve's file table was full.  Reconfigure Btrieve and specify a     
  664.     higher value for the "Maximum Number of Open Files" option.    
  665.     
  666. 87  HANDLE TABLE FULL    
  667.     This status code is applicable only in the server-based and Windows     
  668.     environments.    
  669.     Btrieve's handle table was full.  Reconfigure the Btrieve and     
  670.     specify a higher value for the "Maximum Number of File Handles"     
  671.     option.    
  672.     
  673. 88  INCOMPATIBLE MODE ERROR    
  674.     The application tried to open a file in an incompatible mode.  If     
  675.     the first application to access a file opens it in accelerated mode,     
  676.     all other applications must open it in accelerated mode.  If the     
  677.     first application to access a file opens it in non-accelerated mode,     
  678.     other applications cannot open the file in accelerated mode.    
  679.     
  680. 90  REDIRECTED DEVICE TABLE FULL    
  681.     This status code is applicable only in the server-based environment.     
  682.     BREQUEST's redirection table or server routing table was full.      
  683.     This occurs if you attach to additional servers or map to additional     
  684.     drives after you loaded BREQUEST.  Reload BREQUEST, specifying a     
  685.     larger number for the "Number of File Servers" or "Number of     
  686.     Mapped Drives" options (/S and /R respectively).    
  687.     
  688.     This error also occurs if you detach a particular server and attach     
  689.     to a different server.  Once a workstation has attached to a server,     
  690.     BREQUEST will not remove its name from the server routing table.    
  691.     
  692. 91  SERVER ERROR    
  693.     This status code is applicable only in the server-based environment.    
  694.     BREQUEST could not establish a session with the server.  In NetWare     
  695.     environments, either the NetWare Btrieve Record Manager has not     
  696.     been started or the server was not active.  Verify that the     
  697.     NetWare Btrieve Record Manager is active on the server in question.    
  698.     
  699. 92  TRANSACTION TABLE FULL    
  700.     This status code is applicable only in the server-based environment.    
  701.     The maximum number of active transactions was exceeded.  Reconfigure     
  702.     Btrieve and specify a higher value for the "Number of Concurrent     
  703.     Transactions" option.    
  704.     
  705. 93  INCOMPATIBLE LOCK TYPE    
  706.     Your application tried to mix single record locks (+100/+200) and     
  707.     multiple record locks (+300/+400) in the same file at the same time.     
  708.     All locks of one type must be released before a lock of the other     
  709.     type can be executed.    
  710.     
  711. 94  PERMISSION ERROR    
  712.     Your application tried to open or create a file in a directory     
  713.     without the proper privileges.  Btrieve does not override the     
  714.     network privileges assigned to users.    
  715.     
  716. 95  SESSION NO LONGER VALID    
  717.     This status code is applicable only in the server-based environment.    
  718.     The previously established session was no longer active due to an     
  719.     error at the workstation, the file server, or on the network.      
  720.     Verify that your workstation is still attached to the file server     
  721.     and then reload BREQUEST.    
  722.     
  723. 96  COMMUNICATIONS ENVIRONMENT ERROR    
  724.     This status code is applicable only in the server-based environment.    
  725.     This code occurs when loading Btrieve on a NetWare server.  The SPX     
  726.     connection table is full.  Reload SPX, specifying a higher value     
  727.     for the connection table.  Refer to the NetWare system documentation     
  728.     for more information.    
  729.     
  730. 97  DATA MESSAGE TOO SMALL    
  731.     This status code is applicable only in the server-based environment.    
  732.     Your application tried to read or write a record which was longer     
  733.     than the Btrieve Record Manager or BREQUEST could handle.      
  734.     Reconfigure the Btrieve Record Manager and specify a higher value     
  735.     for the "Maximum Record Length" option.  Reload BREQUEST and     
  736.     specify a higher value for the /D option.    
  737.     
  738.         - For an Update, Insert, or Create operation, the application     
  739.         receives this error if the data buffer length it specifies     
  740.         for the record exceeds the length specified for the Btrieve     
  741.         Record Manager or BSERVER.    
  742.         - For a Get, Step, or Stat operation, the application     
  743.         receives this error if the value specified for the data     
  744.         buffer length is shorter than the length of the data Btrieve     
  745.         would return, regardless of the data buffer length specified     
  746.         in the program.    
  747.     
  748. 98  INTERNAL TRANSACTION ERROR    
  749.     This status code is applicable only in the server-based environment.    
  750.     An error has been detected while executing a previous operation on     
  751.     a NetWare TTS file.  Therefore, no operation other than Abort     
  752.     Transaction (21) is allowed at this point.    
  753.     
  754. 99  THE REQUESTER CANNOT ACCESS THE NETWARE RUNTIME SERVER    
  755.     The DOS Requester returns this status code when NetWare Runtime     
  756.     server support is enabled (/C:1) and the Requester either detects     
  757.     no existing connection or cannot find a valid login username.      
  758.     If the Requester cannot find a login username other than     
  759.     SUPERVISOR, there is no valid name to pass.    
  760.     
  761. 100  NO CACHE BUFFERS ARE AVAILABLE    
  762.     Btrieve has used all the cache buffers it allocated at load time.      
  763.     Using the Setup utility, you can increase the value for the Cache     
  764.     Allocation configuration option.  Alternatively, you can change the     
  765.     Number of Remote Sessions configuration option to decrease the     
  766.     number of concurrent Btrieve users.  For more information, refer     
  767.     to Chapter 3, "Installing and Configuring Btrieve," in the     
  768.     Btrieve Installation and Operation manual.    
  769.     
  770. 101  INSUFFICIENT OPERATING SYSTEM MEMORY IS AVAILABLE    
  771.     There is not enough operating system memory available to perform     
  772.     the requested operation.  Decrease the value for the Cache     
  773.     Allocation configuration option (using the Setup utility),     
  774.     decrease the number of concurrent Btrieve users (using the Number     
  775.     of Remote Sessions configuration option in the Setup utility), or     
  776.     add memory to the server.  For more information on the configuration     
  777.     options, refer to Chapter 3, "Installing and Configuring Btrieve,"     
  778.     in the Btrieve Installation and Operation manual.    
  779.     
  780. 102  INSUFFICIENT STACK SPACE IS AVAILABLE    
  781.     Btrieve has run out of stack space.  To increase the amount of     
  782.     stack space available to your application, relink the application,     
  783.     setting the stack size to a higher value.  Only the NLM     
  784.     applications calling Btrieve on the local server get this message.    
  785.     
  786. 103  THE CHUNK OFFSET IS TOO BIG    
  787.     A Get Direct/Chunk operation has specified an offset beyond the     
  788.     end of the record, either explicitly or through the use of the     
  789.     next-in-record bias to the subfunction value.  Unless Btrieve     
  790.     returns this status while processing the first chunk, the     
  791.     operation was partially successful.  Check the data buffer length     
  792.     parameter immediately after the call to see how much data     
  793.     (and therefore how many chunks) Btrieve retrieved.    
  794.     
  795.     This code can also be returned by the Update Chunk operation     
  796.     when the specified offset is more than one byte beyond the end of     
  797.     the record.  However, in this situation, Status Code 103     
  798.     indicates that Btrieve made no changes to the record.    
  799.     
  800. 104  THE LOCALE INFORMATION COULD NOT BE FOUND    
  801.     The Create or Create Index function returns this status code to     
  802.     indicate that the operating system was not able to return a     
  803.     collation table for the country ID and code page specified.      
  804.     Check that the application specified the locale's country ID and     
  805.     code page correctly and that the operating system is configured to     
  806.     support the country ID and code page.    
  807.     
  808. 105  THE FILE CANNOT BE CREATED WITH VARIABLE-TAIL ALLOCATION TABLES (VATS)    
  809.     The application specified that a Btrieve file should be created     
  810.     with Variable-tail Allocation Tables (VATs); however, the     
  811.     application failed to specify that the file was to use     
  812.     variable-length records (a precondition for files to use VATs).      
  813.     This status applies to key-only files as well as regular data files.    
  814.     
  815. 106  THE OPERATION CANNOT GET THE NEXT CHUNK    
  816.     The application called the Get Direct/Chunk operation to retrieve     
  817.     a chunk from a record and used the next-in-record bias on the     
  818.     descriptor subfunction.  However, after the application     
  819.     established its positioning in the record (but prior to this call),     
  820.     the target record was deleted.    
  821.     
  822. 107  CHUNK UPDATES/RETRIEVALS CANNOT BE PERFORMED ON THE FILE    
  823.     The application tried to use either a Get Direct/Chunk operation     
  824.     or an Update Chunk operation on a pre-v6.0 formatted file.    
  825.     
  826.     
  827.     
  828. 2.2 Client-Based Btrieve for OS/2 and Windows Status Codes    
  829.     
  830. Client-based Btrieve may return the following status codes in an OS/2 or     
  831. Windows environment.    
  832.     
  833. 1001  THE MULTIPLE LOCKS OPTION IS OUT OF RANGE    
  834.     The number specified for the Multiple Locks configuration option     
  835.     must be between 1 and 255, inclusive.    
  836.     
  837. 1002  BTRIEVE CANNOT ALLOCATE THE MEMORY NEEDED    
  838.     Make sure that the workstation has enough memory to load all the     
  839.     programs it requires.    
  840.     
  841. 1003  THE MEMORY SIZE IS TOO SMALL    
  842.     Make sure the value for the Memory Size configuration option is     
  843.     large enough to accommodate the required cache size.    
  844.     
  845. 1004  THE PAGE SIZE OPTION IS OUT OF RANGE    
  846.     The value of the Page Size configuration option must be an even     
  847.     multiple of 512, and it must be between 512 and 4,096, inclusive.    
  848.     
  849. 1005  THE PRE-IMAGE FILE DRIVE OPTION IS INVALID    
  850.     You must specify a valid drive letter for the Pre-Image File Drive     
  851.     configuration option.    
  852.     
  853.     Note: Pre-image files are used only for files created by Btrieve     
  854.     versions earlier than v6.x, or by v6.x if it was loaded with the     
  855.     Create Btrieve Files in Pre v6.x Format configuration option set to     
  856.     Yes.    
  857.     
  858. 1006  THE PRE-IMAGE BUFFER SIZE OPTION IS OUT OF RANGE    
  859.     The Pre-Image Buffer Size configuration option must be between     
  860.     1 and 64, inclusive.    
  861.     
  862.     Note: Pre-image files are used only for files created by Btrieve     
  863.     versions earlier than v6.x, or by v6.x if it was loaded with the     
  864.     Create Btrieve Files in Pre v6.x Format configuration option set     
  865.     to Yes.    
  866.     
  867. 1007  THE OPEN FILES OPTION IS OUT OF RANGE    
  868.     The Open Files configuration option must be between 1 and 255,     
  869.     inclusive.    
  870.     
  871. 1008  THE CONFIGURATION OPTIONS ARE INVALID    
  872.     The configuration options specified contain invalid or     
  873.     unidentifiable values.  For more information on configuration     
  874.     options, refer to the installation and operation manual for     
  875.     your operating environment.    
  876.     
  877. 1009  THE TRANSACTION FILENAME OPTION IS INVALID    
  878.     The filename specified for the Transaction Filename configuration     
  879.     option is not valid.  Check to make sure that the transaction     
  880.     filename is correct.    
  881.     
  882. 1011  THE COMPRESSION BUFFER SIZE SPECIFIED IS OUT OF RANGE    
  883.     The Compression Buffer Size configuration option must be between     
  884.     1 and 64, inclusive.    
  885.     
  886. 1013  THE TASK TABLE IS FULL (WINDOWS ONLY)    
  887.     The Btrieve DLL may return this status code if the task entry     
  888.     table is full.  You can remedy this situation by increasing the     
  889.     number of available task entries; use the tasks initialization     
  890.     option (tasks=xxx) under the [BTRIEVE] or [BREQUESTDPMI] headings     
  891.     in NOVDB.INI.  The minimum value for this option is 1; the maximum     
  892.     value is 255.    
  893.     
  894. 1014  THE APPLICATION ENCOUNTERED A STOP WARNING    
  895.     WBTRVSTOP () returns this status code if the application still has     
  896.     open files or an active transaction.  The application must close     
  897.     all files and end all transactions before calling WBTRVSTOP ().    
  898.     
  899. 1015  A POINTER PARAMETER IS INVALID    
  900.     One of the pointer parameters passed into Btrieve is invalid.    
  901.     
  902. 1016  BTRIEVE IS ALREADY INITIALIZED    
  903.     The Btrieve DLL may return this status code if an attempt is made     
  904.     to initialize Btrieve when it is already initialized.  To     
  905.     reinitialize Btrieve, close all files, end/abort all transactions,     
  906.     and call WBTRVSTOP () before calling the initialization function.    
  907.     
  908. 1017  THE BTRIEVE REQUESTER FOR WINDOWS CANNOT FIND WBTRVRES.DLL    
  909.     WBTRCALL.DLL returns this status code when it cannot find the     
  910.     resource file WBTRVRES.DLL.  You can remedy this situation by     
  911.     placing a copy of the WBTRVRES.DLL file in the same directory as     
  912.     the WBTRCALL.DLL file.    
  913.     
  914.     
  915.     
  916. 2.3 Btrieve Requester Status Codes    
  917.     
  918. This section lists the status codes that the Btrieve Requesters may generate.    
  919.     
  920. 2001  THE MEMORY ALLOCATION IS INSUFFICIENT    
  921.     In an OS/2 environment, the Requester cannot allocate enough     
  922.     memory for the parameters specified with the BRQPARMS environment     
  923.     variable.  In a DOS environment, reduce the value specified for     
  924.     the /D configuration option.    
  925.     
  926. 2002  THE OPTION IS INVALID OR OUT OF RANGE    
  927.     In an OS/2 environment, either one of the options specified with     
  928.     the BRQPARMS environment variable is invalid (such as /P instead     
  929.     of /D) or the value specified for a parameter is out of range.      
  930.     Check the SET BRQPARMS statements to make sure it is correct.    
  931.     
  932. 2003  THE REQUESTER DOES NOT ALLOW LOCAL ACCESS TO THE SPECIFIED FILE    
  933.     The application attempted to access a file stored on a local drive.      
  934.     The version of WBTRCALL.DLL installed at the workstation does not     
  935.     allow access to local files.    
  936.     
  937. 2004  SPX IS NOT INSTALLED    
  938.     Install the NetWare SPX v1.3 or later communications software for     
  939.     OS/2.    
  940.     
  941. 2005  AN INCORRECT VERSION OF SPX IS INSTALLED    
  942.     Install the NetWare SPX v1.3 or later communications software for     
  943.     OS/2.    
  944.     
  945. 2006  THERE IS NO AVAILABLE SPX CONNECTION    
  946.     SPX has already established the maximum number of sessions it can     
  947.     handle.  To increase the maximum, edit the NET.CFG file.  Refer to     
  948.     your NetWare documentation for more information on NET.CFG.    
  949.     
  950. 2007  A POINTER PARAMETER IS INVALID    
  951.     One of the pointer parameters passed to Btrieve is invalid.  Check     
  952.     the program to ensure that the pointer parameters are correct.    
  953.     
  954.     
  955.    
  956.  
  957.