=======================================================================
   JANUARY/FEBRUARY 1992 PROBLEMS & WORKAROUNDS
   =======================================================================
   PRODUCT   :  R:BASE                  VERSION      :  3.1
   CATEGORY  :  BUGS/WORKAROUNDS        SUBCATEGORY  :  PROBLEMS/ANOMALIES
   =======================================================================
   Here are workarounds for verified problems. A Microrim reference number 
   is included at the end of each description.  Those marked "Fixed in 3.1C"
   have been corrected in release C of Upgrade Express, which can be ordered
   by calling 1-800-628-6990.
 
 
   R:BASE 3.1
   ==========
   
   DATE Setting & dBASE Dates
   ==========================
   Dates in an attached dBASE file display as null when the R:BASE DATE 
   SEQUENCE is set to anything except MMDD(YY)YY. R:BASE reads a dBASE 
   date as a text string and converts the text string for display using 
   the default DATE SEQUENCE, which is MMDD(YY)YY. It doesn't matter what 
   the DATE FORMAT setting is. #3614
 
   WORKAROUND:  Change the DATE SEQUENCE setting to MMDD(YY)YY to force 
   R:BASE to display the dates correctly. 
 
 
   Folding Table in RBASE.CFG
   ==========================
   The folding table in the RBASE.CFG contains some errors. Some of the 
   high- order ASCII characters aren't mapped correctly for indexed column 
   comparisons. #3590
 
   WORKAROUND:  Make the following corrections to the RBASE.CFG file in 
   the folding table:
 
   <>  Change CASEP 130 69 to CASEP 130 144
   <>  Change CASEP 135 67 to CASEP 135 128
   <>  Add LCFOLD 128 135
   <>  Add LCFOLD 144 130
 
 
   The -T2 Startup Option
   ======================
   When you start R:BASE using the -T2 option (RBASE -T2), R:BASE scrolls 
   the data on line 25, but it will not scroll the screen. When screen 
   output reaches line 25, R:BASE stops there and scrolls until you issue 
   a CLS command. Then everything is fine until you reach line 25 again. #3593
 
   WORKAROUND:  None, other than not using the -T2 option when starting 
   R:BASE.
 
 
   Negative Numbers in CTXT
   ========================
   If you use a literal negative number in the CTXT function (for example, 
   (CTXT(-4))) R:BASE displays this error message: "Text function arguments 
   must be constants, columns, or variables. Expression cannot be evaluated." 
   #3600, Fixed in 3.1C
 
   WORKAROUND:  Put the negative number in a variable. Then use the dotted 
   variable in the CTXT function:
 
   SET VAR vnum INTEGER = -4
   SET VAR vtxt = (CTXT(.vnum))
 
 
   Report Locations & the Mouse
   ============================
   After you locate a field in a report, R:BASE no longer allows you to 
   click the mouse to position the cursor on the screen. If you click the 
   mouse, R:BASE moves the cursor up to the menu instead of moving it to 
   the indicated screen location. You can use the mouse to move the cursor 
   to the right of the current cursor position on the same row, but that's 
   all. Even after typing other characters or using the arrow keys to move 
   the cursor, clicking the mouse takes you back and forth from the menu 
   only after you've located the first field. #3598
 
   WORKAROUND:  Use the arrow keys to move the cursor into position to 
   locate the second and subsequent fields in a report.
 
 
   DROP VIEW Versus DROP TABLE
   ===========================
   When removing a view in R:BASE 3.1, use this command:
 
   DROP VIEW viewname
 
   If you use DROP TABLE instead of DROP VIEW, R:BASE correctly gives you 
   an error message. The problem is that the error message, -ERROR- Cannot 
   use REMOVE TABLE command for a view, use REMOVE VIEW, mentions the 
   REMOVE command instead of the DROP command. REMOVE is an undocumented 
   command in R:BASE 3.1. #3580
 
   WORKAROUND:  Use DROP VIEW to remove a view.
 
 
   DROP COL for Computed Column
   ============================
   It seems to work correctly when you drop a computed column from a table 
   by using the DROP COLUMN or REMOVE COLUMN command at the R> prompt. But 
   if you look at the SYSCOMP table through R:SCOPE (a product available 
   for sale from Microrim), you can see that the row for that computed 
   column has not actually been deleted. You can add the column back with 
   a different definition, but each time you drop the column the row remains 
   in SYSCOMP. Eventually, you can get to a point where you can't add or 
   redefine the computed column. #3607
 
   WORKAROUND:  Drop computed columns by using the menus instead of the R> 
   prompt. Choose Create/modify under Data~bases, and then choose to modify 
   the table. When the cursor is on the column you want to remove, press 
   [F9]. When you use the menus to remove the computed column, R:BASE 
   doesn't leave rows in SYSCOMP. 
 
 
   Transaction Processing Settings
   ===============================
   If you have MULTI (multi-user) set OFF, TRANSACT (transaction processing) 
   set ON, and AUTOCOMM (automatically commit changes) set ON, R:BASE doesn't 
   update database file 1 (DBNAME1.RBF, the database definition file) 
   correctly when you add rows to a table. The actual disk size of database 
   file 2 (DBNAME2.RBF, the data file) increases, but F2SIZE in file 1 
   doesn't reflect the new size. You can illustrate this by using the 
   following commands:
 
   LIST tblname
   COMPUTE ROWS FROM tblname
   COMPUTE COUNT(1) FROM tblname
   SELECT COUNT(*) FROM tblname
 
   The last two commands read database file 2 and display the correct, 
   updated number of rows in the table. But the first two commands read 
   database file 1 and display the number of rows that were in the table 
   before the new row was added. In other words, the results from COMPUTE 
   COUNT and COMPUTE ROWS don't match. In addition, R:BASE can't find the 
   new row. The SELECT...WHERE COUNT=LAST command says no rows satisfy the 
   WHERE clause, and the SELECT * command with no WHERE clause doesn't 
   display the new row.
 
   Sometimes you won't be able to see the problem until you disconnect from 
   the database and then later reconnect to it. #3608
   
   WORKAROUND:  You will usually have MULTI set ON when using transaction 
   processing because you're sharing the data~base with others, so you won't 
   run into this problem. If you must have MULTI set OFF and you want to use 
   transaction processing, however, set AUTOCOMM OFF and enter the COMMIT 
   command to manually commit changes after you enter a command.
 
   If the results of the COMPUTE ROWS and COMPUTE COUNT commands don't match, 
   you can use PACK or RELOAD to correct the problem, but you'll have to 
   reenter the new rows. If the data~base resides on the network, disconnect 
   from the database and then reconnect it with MULTI set OFF before using 
   COMPUTE ROWS and COMPUTE COUNT to check it. Alternatively, use R:SCOPE to 
   recover.
 
 
   Grant/Revoke & Variable Forms
   =============================
   You might have a problem with the display in variable forms if you're 
   using the Grant/revoke password system and you aren't the owner. Only 
   the first variable on the variable form displays a value; the other 
   variables display their values as you move into the field. If you use 
   the DRAW WITH ALL command, all the variables display briefly and then 
   disappear as R:BASE executes the EDIT VAR command. If you are the owner 
   or use ENTER VAR instead of EDIT VAR, all the variable values display 
   correctly. #3603
 
   WORKAROUND:  Many possible workarounds exist. Here are a few examples:
 
   <>  Replace the variable form with FILLIN and other R:BASE commands
   <>  Use a table form instead of a variable form
   <>  Enter the owner password before using a variable form and then set 
       it back to the current user afterward
 
 
   BROWSE DISTINCT & QBE
   =====================
   If you issue a BROWSE DISTINCT command and then press [Ctrl-F3] twice 
   in a row to go into QBE (Query By Example) and immediately return to 
   the Browse/edit screen, R:BASE displays a couple of junk rows containing 
   spurious data (very large numbers), and your computer might stop 
   responding. #3611, Fixed in 3.1C
 
   WORKAROUND:  None, other than doing something in QBE before you again 
   press [Ctrl-F3] to return to the Browse/edit screen.
 
 
   Rules that Look into dBASE Tables
   =================================
   This problem occurs exclusively in multi-user environments when you use 
   EDIT * FROM tblname and tblname has a rule that verifies a value by 
   checking acceptable values listed in a dBASE table. When you enter a 
   new value that breaks the rule, R:BASE continues to display the old 
   value without highlighting the field. The highlight reappears if you 
   enter a valid value or press [F5] to reset the field.
 
   If the rule-protected column is an INTEGER, R:BASE displays the rule's 
   error message but fails to highlight the field when you press a key. If 
   the rule-protected column is TEXT, R:BASE displays this message: Another 
   user has updated/changed this row. Press any key to continue. This 
   erroneous message is displayed in red on gray; again R:BASE doesn't 
   highlight the field when you press a key.
 
   Because no field is highlighted and the value shown in the field is the 
   old (acceptable) value, you can't be sure where the cursor is and thus 
   might keep pressing [Enter]. If you do, R:BASE continues to display the 
   error message and you might think the computer has stopped responding 
   to input. #3615, Fixed in 3.1C
 
   WORKAROUND:  Enter a new, acceptable value or press [F5] to reset the 
   field.
 
 
   Converting from DATE to TEXT
   ============================
   In both Personal R:BASE and R:BASE 3.1, you are supposed to be able to 
   convert a column from DATE to TEXT. In the RBDEFINE menus (choose 
   Create/Modify under Databases), however, TEXT is not listed as an 
   acceptable new data type; NOTE, DATE, and COMPUTED are the only 
   acceptable choices. #3617
 
   WORKAROUND:  If you have R:BASE 3.1, use the REDFINE command from the R> 
   prompt to convert DATE into TEXT directly.
 
   If you have Personal R:BASE, you must use the menus, so change the 
   column's data type from DATE to NOTE and save the table. Then choose 
   to modify the table again and change the column from NOTE to TEXT.
 
 
   ARRANGE BY & ORDER BY
   =====================
   It is possible to damage a database when all of the following conditions 
   are true:
 
   <>  You are using the EDIT command with a multi-table form that has a 
       lookup expression defined on the first table in the form
   <>  The EDIT command includes an ARRANGE BY clause to sort the rows in 
       the lower tables and an ORDER BY clause to sort the rows in the 
       first table
   <>  You press [F8] to move to the next row in the main (first) table or 
       choose Next row under Go to on the menu
 
   Under these conditions, you might get this error: Disk Problems. Check 
   disk and files. When you press a key, R:BASE sends you to the menu or 
   to DOS. It's possible that database file 1 will no longer be usable.
   #3613, Fixed in 3.1C
 
   WORKAROUND:  None, other than avoiding one or more of the conditions 
   listed above.
 
 
   RENAME FORM & Variable Forms
   ============================
   If you try to rename a variable form from the R> prompt with the RENAME 
   FORM command, R:BASE displays this error message:  is a 
   undefined form. #3618
 
   WORKAROUND:  Use the Forms Create/modify menu to change the name of a 
   variable form. 
 
 
   LOAD DATA...AS ASCII
   ====================
   The LOAD DATA FROM  AS ASCII command loads the null symbol as 
   a literal -0- (or whatever the current NULL setting is) instead of as a 
   null in TEXT fields. This problem occurs only with TEXT columns. R:BASE 
   correctly loads null values into the other data types. #3616
 
   WORKAROUND:  If you omit the AS ASCII clause, the command works correctly 
   but more slowly. To use the faster AS ASCII option, set your null symbol 
   to either a four-character code or a blank before unloading the data. For 
   example, use either of these two commands before unloading your data:
 
   SET NULL '<~>'
   SET NULL '-00-'
 
   LOAD...AS ASCII loads a null value correctly if R:BASE sees two commas 
   right next to each other (,,). The four-character code works because 
   R:BASE stores all TEXT values in a minimum of four bytes, so if a value 
   has fewer than four characters, R:BASE does not match it with the null 
   symbol.
 
 
   BROWSE DISTINCT & QBE
   =====================
   If you use the DISTINCT option on the BROWSE command, switch to QBE 
   (Query By Example) to add a condition, and then return to browse through 
   the table, the rows are no longer distinct you see all the rows, not just 
   the distinct ones.
 
   To illustrate, issue this command:
 
   BROWSE DISTINCT empid,empstate FROM employee
 
   Press [Ctrl-F3] to add this condition:
 
   WHERE empid 100
 
   Then press [Ctrl-F3] to return to browse the data. Now all the rows are 
   displayed, not just the distinct rows. #3610 - Fixed in 3.1C
 
   WORKAROUND:  Include a WHERE clause on the initial BROWSE DISTINCT 
   command, then you can add conditions in QBE without incident. If you 
   remove all the conditions, the problem will recur  you'll get all 
   rows instead of just distinct rows.
 
 
 
   R:SCOPE
   =======
 
 
   INDEXR program in R:SCOPE
   =========================
   INDEXR, a program that comes with R:SCOPE, builds indexes quickly. But 
   INDEXR doesn't build indexes on TEXT columns that contain high-order 
   ASCII characters in the same way that R:BASE does. R:BASE uses the 
   folding table in the RBASE.CFG file to determine equivalence between 
   upper and lower case and with regular ASCII characters. INDEXR looks 
   at each character as being a different, unique value. Therefore, R:BASE 
   treats uppercase foreign characters as equal in value to lowercase 
   foreign characters when it builds indexes so it builds a multiple 
   occurrence table (MOT), but INDEXR builds its indexes as if the uppercase 
   and lowercase values are distinctly different values. As a result, an 
   indexed search using R:BASE-built indexes will find different values 
   than does an indexed search using INDEXR-built indexes. #3592
 
   WORKAROUND:  If you're using foreign characters or other high-order 
   ASCII characters in your data, use R:BASE to build indexes, not INDEXR.
 
 
   Checking Indexes in R:SCOPE
   ===========================
   When R:SCOPE checks the index on a TEXT column that contains a blank 
   value, it reports an error: "No index file references were found for 
   the following values: < > at the data file address 
." R:BASE has no trouble finding a blank value in an indexed TEXT column. #3582 WORKAROUND: Ignore the erroneous R:SCOPE error message. No problem exists because R:BASE won't have any trouble finding the index file references. R:SCOPE & Directories ===================== R:SCOPE will not list directory names that include extensions when you want to change to a new directory. #3587 WORKAROUND: Choose Other... and then enter the full path, or change to the directory before you start R:SCOPE. R:SCOPE & Indexes ================= R:SCOPE can't find index entries for the lowercase high-order ASCII characters (CHAR(129) or higher). R:SCOPE displays this error: "No index file references were found for the following values: at the data file address
." It does find entries for the uppercase characters. R:BASE has no trouble finding them on an indexed search. #3591 WORKAROUND: Ignore the erroneous R:SCOPE error message. No problem exists because R:BASE won't have any trouble finding the index file references.