home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / db4bugs.zip / ANOMLY10.TXT < prev    next >
Text File  |  1989-05-22  |  8KB  |  170 lines

  1. ANOMALIES UPLOADED ON 5-22-89
  2.  
  3.  
  4.                                    ANOMALY10.TXT
  5.  
  6.  
  7. The following listing addresses four known anomalies when using
  8. dBASE IV.  Use of these techniques will aid you in avoiding
  9. anomalies that have been reported to our Software Support
  10. Center.  There is also one Usage Tip that may be used in order to
  11. avoid further problems or misunderstandings when using the dBASE
  12. IV product.  This report will be supplemented as new information
  13. is received.  
  14.  
  15. *****************************************************************************
  16.  
  17.  
  18.                                    ANOMALIES
  19.  
  20.  
  21. SPOOL not available in dBASE IV
  22.  
  23.      The SPOOL command is not available in Novell versions 2.10
  24.      and above.  dBASE IV is certified to run only on versions
  25.      2.1x.  Page D-7 of Network Installation illustrates a sample
  26.      Login script which initializes a print spooler with the
  27.      command #SPOOL.  The proper command to activate a spooler in
  28.      a login script in 2.1x is #CAPTURE.  Novell versions 2.0x
  29.      used the SPOOL command syntax.  
  30.      
  31.      There are other places that reference SPOOL, such as on page
  32.      2-5 of Network Installation, and page GS-7 of Getting
  33.      Started, where printer device selections list \\SPOOLER as
  34.      an option.  Again, this option is non-functional under the
  35.      2.1x environment.
  36.      
  37. ================================================================================
  38.      
  39.  
  40.  
  41. APGEN won't overwrite old .PRG files on a network
  42.  
  43.      Regenerating an existing application does not overwrite the
  44.      associated .PRG files using the Application Generator on a
  45.      network.  Even when you specify Y when asked whether or not
  46.      to overwrite, the old .PRG files are not overwritten but the
  47.      newly generated code is appended to the end of the file.
  48.      
  49.      WORKAROUND:
  50.      
  51.      Delete the <application name>.PRG and <main menu>.PRG files
  52.      before regenerating the application.
  53.      
  54. ================================================================================
  55.  
  56.  
  57. KEY() <.MDX filename> needs to be a character expression
  58.  
  59.      The explanation of the KEY() function is misleading in the
  60.      "Functions" page 4-65 of Language Reference.  The <.MDX
  61.      filename> argument is a character expression, meaning it
  62.      should be enclosed in quotes.
  63.      
  64. ================================================================================
  65.  
  66.  
  67. ROLLBACK/COMPLETED() do not function as documented
  68.  
  69.      The functionality of ROLLBACK in Transaction processing is
  70.      not the same as stated in the documentation (both on pages
  71.      2-229 of Language Reference and on page 4-21 of Networking
  72.      with dBASE IV.)  The same is true of the values returned by
  73.      the COMPLETED() function.  
  74.      
  75.      A transaction is a unit of work which contains a sequence of
  76.      database operations.  The transaction processing commands of
  77.      dBASE IV provide the capability of data recovery if an error
  78.      occurs during the course of a transaction.  The BEGIN
  79.      TRANSACTION command creates a transaction log file of all
  80.      changes made to the involved database files during a
  81.      transaction.  The log file(s) (TRANSLOG.LOG in single user
  82.      operation, WRKSTN#.LOG in multiuser operation) gives the
  83.      user the ability to set the affected file back to the
  84.      original values that it contained when the transaction
  85.      began.  This is done via the ROLLBACK command.  (See Chapter
  86.      3, "Transaction Processing" in Networking with dBASE IV.)
  87.      
  88.      The ROLLBACK command sets all involved files back to their
  89.      original, consistent state, as if the transaction never
  90.      occurred.  However, the ROLLBACK command behaves like an END
  91.      TRANSACTION command in that the transaction log file resets
  92.      the involved files to their original states, the transaction
  93.      is ended, the log file is deleted and the program continues
  94.      on to the line following the END TRANSACTION command.  The
  95.      documentation is incorrect in stating that a ROLLBACK
  96.      command will leave the transaction open and active.  
  97.      
  98.      Another consideration with the ROLLBACK command is that it
  99.      functions much like a RETURN or DEACTIVATE MENU command - it
  100.      causes an immediate return from the procedure in which it is
  101.      contained so that any commands that are located after the
  102.      ROLLBACK command will never be executed.  As stated above,
  103.      program command will continue on to the line after the END
  104.      TRANSACTION command.  Consequently, many of the examples in
  105.      the documentation in Networking with dBASE IV Chapter 3 are
  106.      incorrect (e.g. on pages 3-4 and 3-7). 
  107.      
  108.      The documented return values of the COMPLETED() function are
  109.      also inaccurate.  COMPLETED() tests whether a transaction
  110.      has ended successfully or not.  If the END TRANSACTION
  111.      command was issued, COMPLETED() will be set to a true value
  112.      and the log file will be deleted.  If a ROLLBACK has
  113.      occurred, the changes made during the transaction are
  114.      aborted, hence COMPLETED() will return a false value (.F.). 
  115.      It also returns a false when tested within a transaction
  116.      procedure, since the transaction is in progress.  The
  117.      function does not return a .T. after a ROLLBACK command, as
  118.      documented.
  119.      
  120.      Two other important functions should be discussed:
  121.      ISMARKED() and ROLLBACK().  ISMARKED() tests whether or not
  122.      a file is in an inconsistent state; either a transaction is
  123.      in progress or perhaps the program never finished and the
  124.      transaction log file still exists.  If ISMARKED() is set to
  125.      .T. because an error occurred, a ROLLBACK may be required. 
  126.      The ROLLBACK() function returns a default value of .T. and
  127.      will also return .T. after a successfully completed ROLLBACK
  128.      command.  If a ROLLBACK command fails to reset the files to
  129.      their original states for any reason, ROLLBACK() will return
  130.      a false value.  
  131.      
  132.      The transaction processing functions return the following
  133.      values:
  134.      
  135.      ────────────────────────────────────────────────────────────────────────
  136.      Transaction status:     COMPLETED()       ISMARKED()     
  137.      ROLLBACK()
  138.      ────────────────────────────────────────────────────────────────────────
  139.      In the middle of a
  140.      Transaction: (a)        .F.              .T.             .T.
  141.      
  142.      After a completed
  143.      Transaction: (b)        .T.              .F.             .T.
  144.      
  145.      After a completed
  146.      ROLLBACK:    (b)        .F.              .F.             .T.
  147.      
  148.      If the ROLLBACK 
  149.      fails:       (b)        .F.              .T.             .F.
  150.      ────────────────────────────────────────────────────────────────────────
  151.      
  152.      (a) - Tested in an error procedure  
  153.      (b) - Tested after the END TRANSACTION
  154.      
  155. ================================================================================
  156.                                    
  157.                                    
  158.                                USAGE-TIP
  159.                                    
  160.  
  161.  
  162. BROWSE:Fields:Blank Field on index key field is dimmed
  163.  
  164.      The menu option BROWSE:Fields:Blank field is dimmed, that
  165.      is, unavailable on a master index key field.  However, when
  166.      the cursor is on that key field, the contents may be changed
  167.      manually.  In order to blank a master key field within
  168.      BROWSE, cursor to that field and then press {Ctrl-Y} or
  169.      {Ctrl-T}.
  170.