=======================================================================
     PROBLEM SOLVING WITH R:BASE
     =======================================================================
     PRODUCT:  R:BASE          VERSION :  3.1 Or Higher
     =======================================================================
     AREA   :  PROGRAMMING     CATEGORY:  DEBUGGING          DOCUMENT#: 663
     =======================================================================
 
 
     R:BASE is a useful tool for personal and business applications,
     offering many different solutions for your data processing needs. 
     However, running a powerful program like R:BASE may sometimes seem to
     create as many problems as it solves.  This article describes a basic
     strategy to help you identify some of the possible problems using
     R:BASE and developing applications.  This strategy can also be
     applied to other, non-R:BASE related problems.  You'll see where to
     look for problems, when to check your resources, and when to seek
     advice.
 
     Identifying the problem
     -----------------------
     Identifying the problem is the first, but not necessarily the
     easiest, step in solving problems.  Often a software problem starts
     as, "The program doesn't work," or "it worked fine the last time I
     did it!"  Obviously, this sentiment isn't identifying the real
     problem.  Our challenge is not only finding a solution, but also in
     determining the real problem.  
 
     Today's personal computer is an environment that can spawn untold
     problems - a complex piece of hardware with processors, disk drives,
     keyboards, monitors and other devices connected by cables and more
     cables.  Accompanying the hardware is a complex operating system
     controlling the different devices, and above all is the application
     software, for example, R:BASE with its relational tables, forms,
     reports and programs.  Many times a "computer problem" is not a
     problem at all, but simply our inability to remember all the
     processes and possibilities.  Computers are the most obedient
     creatures around.  They do exactly what they're told, nothing more
     and nothing less. 
 
     To get at the core of the problem, we need to eliminate some of these
     possible causes; fortunately, our process of elimination moves
     quickly. Here is an excellent way to go about it.
 
     Making a comparison
     --------------------
     Compare the situation that has the problem to a similar situation or
     environment without it, and you should be able to find a difference. 
     The difference usually leads to the cause, or at least to an area to
     be investigated.  You must, however, make the comparison before you
     can see the differences that form the clues to the problem and thus the
     solution.
 
     Compare the environment; the difference may be here.  For example:
 
       "It works on Joe's PC but not on mine." 
       "I just upgraded to DOS 5.0." 
       "I bought a new 486."
       "I upgraded to a newer version of R:BASE."  
       "I changed memory managers"
 
     
     
     
     
     
     
     Compare the processes; the difference might be in the action or
     activity.  For example: 
 
       "My program is running slower than it used to." 
       "The totals in my report are much larger than they used to be."   
       "My program used to return to the me to the menu, now it leaves me at an
 R>".  
       "It only happens the second time I do it." 
       "I modified my program, just a little bit."  
 
     Make a time comparison; the difference may be connected to the time
     of day.  For example: 
 
       "The network always slows down at lunch time."  
       "At 9:00 every morning I get kicked out of R:BASE."  
       "It only happens when Mary is printing the accounting report"
 
     Compare the problem with a similar situation.  For example: 
 
       "It prints from Wordperfect, but not from R:BASE" 
       "It works from the R> but not in my application."  
       "It works in the sample database but not in my database."
       "It works when my database is local, not when it is on the network"
 
     Sometimes it is hard to identify a difference.  In fact there can be
     many situations with no apparent difference or change at all.  This
     may be the time to contact someone who can offer a solution or
     suggest other areas to check.
 
     Before you call
     ---------------
     But, before you call someone, take a look at any differences you have
     identified, they may indicate who to confer with on possible causes. 
     If the problem occurred when you changed hardware, then call your
     hardware technician.  If the problem occurred when you switched
     operating systems, then contact the manufacturer of the operating
     system.  You should contact Microrim Technical Support when you have
     made a change to R:BASE or your R:BASE program.  An experienced
     support technician has a good idea where to look for solutions based
     on the description of the problem.  Our technicians help you to
     identify differences and make comparisons for arriving at a
     solution.  
 
     What to compare
     --------------
     Here is a list of some areas and specifics to compare when trying to
     isolate a problem:
     
     Hardware and Environment
     -----------------------
       Computer
         Brand of the computer
         Type of CPU (8088, 80286, 80386 ...)
         Amount of memory (conventional, extended, expanded)
         Stand-alone or on a network
         Size of the hard drive(s)
         Free (available) disk space 
   
       Operating System
         DOS, OS/2 or other
         Version
 
       
       
       
       
       
       Printer
         Type of printer (dot matrix, laser ...)
         Brand of printer
         Serial or parallel connection on the printer
 
       Network System
         Brand
         Version
         Search mappings or path
         Group permission settings
         Topology (ethernet, archnet, token ring)
         File attributes
 
       CONFIG.SYS
         Files and Buffers
         Memory manager
           Brand of manager
           Extended or expanded
         Disk cache (extended or expanded)
         Ram drive (extended or expanded)
         Other device drivers
 
       AUTOEXEC.BAT
         Path
         Network commands
         TSR's (Terminate and Stay Resident programs)
         Menuing system
 
 
     R:BASE
     ------
       Version
       
       Database
         Name                           Size of files
         Location                       Passwords
         (local or network)
       
       Tables
         Name                           Columns
         Rows                             Name
                                          Autonumbered
                                          Indexed
                                          Computed
       
       Views
         Select command                 Correlation names
         Linking columns                Union
         Where clause                     Place holders
       
       Command Files
       Messages on                      Command syntax
         Error Messages on              Comments 
         Debug on                       Variables
         Echo on                          Names
         Debugger (Trace) used            Data types
         Application Express/             Values
         custom code                      Expressions
         CodeLock                         Functions
         
       
       
       
       
       
       
       Forms
         Add data or edit data          Variables
           Where clause                  Lookups
           Order by clause                 Same-table/other-table
         Form settings                     Characteristics
         Number of tables/Views          Expressions
         Table settings                    Column/variable definition
           Region                          Dependent
           Tiered                          Correct value
           Field locations
         Field settings
           Default values
           Pop ups
           Entry edit procedures (see command files)
       
       Reports
         Table/View                     Page Settings
         Print command                    Lines per page
           Where clause                   Form feeds
           Order by clause                Page footer line number
         Variables                      Layout
           Lookups                        Report/Page/Break headers
           Expressions                    Detail lines
             Datatype                     Break/Page/Report footers
             Order                        Column/Variable locations
             Correct value                Printer code locations
         Breakpoints                      Lines drawn
           Columns
           Reset variables
           Form feeds
 
     This list is long and is by no means complete.  You do not have to
     compare every item when problem solving.  Compare the areas involving
     your problem to those areas where you may recently have made some
     type of change.  Often finding one difference or change will lead to
     the next comparison to make and help you solve the problem.  
 
     When you have identified those things that have changed,  you should
     be very close to the cause of the problem.  Now it is time to check
     your resources for the information that might offer a solution, They
     include:
 
          your documentation - a great source of help
          technical journals 
          Microrim bulletin board 
          FAX articles (automated FAX number is (206) 649-2789).  
 
     When these resources have been exhausted, and you have not been able
     to find a solution, it is time to contact technical support.  Because
     you have taken the time to research the problem,  a support
     technician will have an easier time discussing the solution, or
     offering alternatives and suggestions for your problem.  When you
     make the proper comparison, you can find the difference that will
     lead to a solution.