home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / clipper / 52cus.zip / 52CUS.TXT < prev    next >
Text File  |  1993-08-06  |  10KB  |  251 lines

  1. Dear CA-Clipper 5.2 Developer, This file contains:
  2.  
  3.       A. The instructions for applying the CA-Clipper 5.2c patch to any 
  4.          North American version of CA-Clipper 5.2 including: 5.20, 5.2a 
  5.          or 5.2b.  Please review these instructions carefully before 
  6.          attempting to apply the patch.
  7.  
  8.       B. The problem resolutions contained in the CA-Clipper 5.2c patch.
  9.  
  10.       C. A technical note pertaining to a problem within the RLOCK() and
  11.          DBRLOCK() functions.
  12.  
  13.  
  14. ==============================================================================
  15. A. Instructions for patching 5.2 (any rev.) to 5.2c (rev. 204).
  16.  
  17. REQUIRED FILES FOR PERFORMING UPDATE:
  18.  
  19.    52CUS.EXE            A self extracting .ZIP file that may be 
  20.                         downloaded from the CLIPPER forum (library 0) on
  21.                         CompuServe. (GO CLIPPER).
  22.  
  23.    PATCH.EXE            Updating engine required for use with all 52C 
  24.                         *.RTPs.  This file is also in Library 0 of the 
  25.                         CLIPPER CompuServe forum.
  26.  
  27.  
  28. CONTENTS OF 52CUS.EXE:
  29.  
  30.    INSTALL.EXE          Installation engine required for performing the 
  31.                         CA-Clipper 5.2c installation patch.
  32.  
  33.    DISK.ID              Installation identification file.
  34.  
  35.    INSTALL.DAT          Installation script file.
  36.  
  37.    52CDBU.LIF           Compressed update file for CLIPPER5\SOURCE\DBU
  38.  
  39.    52COBJ.LIF           Compressed update file for CLIPPER5\OBJ
  40.  
  41.    52CRL.LIF            Compressed update file for CLIPPER5\SOURCE\RL
  42.  
  43.    52CSAMPL.LIF         Compressed update file for CLIPPER5\SOURCE\SAMPLE
  44.  
  45.    52CSYS.LIF           Compressed update file for CLIPPER5\SOURCE\SYS
  46.  
  47.    CLP52BIN.RTP         Update file for CLIPPER5\BIN
  48.  
  49.    CLP52INC.RTP         Update file for CLIPPER5\INCLUDE
  50.  
  51.    CLP52LIB.RTP         Update file for CLIPPER5\LIB
  52.  
  53.    CLP52NG.RTP          Update file for NG
  54.  
  55.  
  56. UPDATE PROCESS:
  57.  
  58. 1.   o    Download the 52CUS.EXE file from Compuserve.
  59.  
  60. 2.   o    Move to the disk drive and directory where the patch files are
  61.           stored.
  62.                 EXAMPLE: C:\> CD\52CUS
  63.  
  64. 3.   o    Insert a blank formated diskette in the A: drive and move to it.
  65.                 EXAMPLE: C:\52CUS> A:
  66.  
  67. 4.   o    Execute the 52CUS.EXE file.
  68.                 EXAMPLE: A:\> C:52CUS
  69.  
  70. 5.   o    Execute the installation program and follow it's simple 
  71.           instructions.
  72.                 EXAMPLE: A:\> INSTALL
  73.  
  74. 6.   o    Move to your DBU directory, define RTLINK's behavior and
  75.           re-compile DBU.
  76.           EXAMPLE:
  77.                   A:\> C:
  78.                   C:\NG> CD \CLIPPER5\SOURCE\DBU
  79.                   C:\CLIPPER5\SOURCE\DBU> SET RTLINKCMD=
  80.                   C:\CLIPPER5\SOURCE\DBU> RMAKE DBU
  81.  
  82.      o    Copy DBU.EXE to your BIN directory.
  83.           EXAMPLE:
  84.                   C:\CLIPPER5\SOURCE\DBU> COPY DBU.EXE C:\CLIPPER5\BIN
  85.  
  86.  
  87. 7.   o    Move to your RL directory, re-compile RL.
  88.           EXAMPLE:
  89.                   C:\CLIPPER5\SOURCE\DBU> CD \CLIPPER5\SOURCE\RL
  90.                   C:\CLIPPER5\SOURCE\RL> RMAKE RL
  91.  
  92.      o    Copy RL.EXE to your BIN directory.
  93.           EXAMPLE:
  94.                   C:\CLIPPER5\SOURCE\RL> COPY RL.EXE C:\CLIPPER5\BIN
  95.  
  96.  
  97. 8.   o    Move to your PLL directory, rebuild BASE52.PLL and BASE52.PLT.
  98.           EXAMPLE:
  99.                   C:\CLIPPER5\SOURCE\RL> CD \CLIPPER5\PLL
  100.                   C:\CLIPPER5\PLL> RTLINK @BASE52
  101.  
  102.      o    Do not become alarmed if the message: "Undefined Symbols... 
  103.           should be resolved at EXE generation" appears during this 
  104.           step.
  105.  
  106.  
  107. 9.   o    The update process is now complete.  The modified files will 
  108.           have a date stamp of 08/06/93 and a time stamp of 05:23pm.
  109.         
  110.  
  111.  
  112. ==============================================================================
  113. B. Problems resolved by CA-Clipper 5.2c:
  114.  
  115.  
  116.         1.  Fixed most instances of the DBFNTX/1210 error.
  117.  
  118.         2.  Fixed INDEXKEY() so that when it is called with an invalid 
  119.             order argument it will no longer corrupt the data at memory 
  120.             location 0000:0000 in dos and will no longer generate a 
  121.             General Protection Error in Exospace.
  122.  
  123.         3.  Fixed CMEM.OBJ (in Clipper.lib) so that the malloc(), 
  124.             _fmalloc(), free() and _ffree() memory allocation functions 
  125.             will return the correct information.
  126.  
  127.         4.  Fixed VM Integrity error when evaluating detached code 
  128.             blocks that are nested three or more deep.
  129.  
  130.         5.  Fixed VAL() so it no longer left justifys the result.
  131.  
  132.         6.  Fixed ACHOICE() so that it will not redraw the menu window 
  133.             after returning from the user specified function unless:
  134.                 A. the user specified function changes the number of 
  135.                    elements in the menu array.
  136.                 B. the user specified function returned the new return 
  137.                    code of AC_REDRAW (which can be found in ACHOICE.CH 
  138.                    and has the numeric value of 4).
  139.  
  140.         7.  Fixed the Expanded Memory Manager so it will not attempt to 
  141.             use more than eight megabytes of EMM.  Currently, Clipper 
  142.             can not take advantage of more than eight megabytes of EMM.  
  143.             Please note that the printed documentation is incorrect.  
  144.             This was the cause of many corruptions on systems that had 
  145.             more than eight megabytes of expanded memory.
  146.  
  147.         8.  Fixed an incorrect calculation in _xvalloc() that caused the 
  148.             Virtual Memory Manager to allocate 1K to much if the 
  149.             requested size + 16 (in bytes) was an even multiple of 1024.
  150.  
  151.         9. Fixed an internal calculation that did not account for 
  152.            overflow when converting a segment:offset address to an 
  153.            absolute address.  This could only be encountered by calling 
  154.            the VM API function:_xvalloc().
  155.  
  156.        10. Fixed several problems in the DBFCDX replaceable database
  157.            driver.
  158.  
  159.        11. Fixed a compatability problem between CA-Clipper Tools-II and
  160.            CA-Clipper 5.2x.  Developers using CA-Clipper Tools-II 
  161.            noticed unresolved symbols at link time.  The CT2PATCH.OBJ 
  162.            file will resolve these problems and should be included as an
  163.            object on the link line.   Please note that CT2PATCH.OBJ is 
  164.            only intended for use with CA-Clipper Tools-II, those not 
  165.            using CA-Clipper Tools-II should not include this file in 
  166.            their applications.
  167.  
  168.        12. Fixed DBU so that closing a file with an associated filter 
  169.            will no longer cause a DBCMD/2001 error.
  170.  
  171.        13. Fixed DBU so that performing a replace will no longer cause a 
  172.            "Lock Required" error.
  173.  
  174.        14. Fixed REPORT FORM so header will print when creating a report 
  175.            whose width is greater than 254 characters.
  176.     
  177.        15. Fixed REPORT FORM so that it now ejects properly for groups.
  178.  
  179.        16. Fixed REPORT FORM so that double spaced forms will now print 
  180.            properly.
  181.  
  182.        17. Determined that the EG_SYNTAX error in REPORT FORM was not 
  183.            caused by an empty database.  It was caused by the absence of 
  184.            a field name for the report.  This is the correct behavior.
  185.  
  186.        18. Fixed REPORT FORM so that it will respect the "SUMMARY ONLY" 
  187.            option when requested.
  188.  
  189.        19. Fixed REPORT FORM so that it no longer prints an extra form 
  190.            feed after the report is completed.
  191.  
  192.        20. Fixed RL so that it will save entered data from all entry 
  193.            screens instead of only the current display screen.
  194.  
  195.        21. Fixed RL so that it will no longer save the rightmost column 
  196.            when it is empty.
  197.  
  198.        22. Fixed RL so that it accepts "T" or "F" in it's question 
  199.            fields.  It previously was limmited to "Y" or "N".
  200.  
  201.  
  202.  
  203. ==============================================================================
  204. C: Technical Note: RLOCK()/DBRLOCK() problem
  205.  
  206.  
  207.    o Problem:  
  208.         RLOCK() and DBRLOCK() (without any parameter) will not reliably 
  209.         lock a record under certain circumstances, even though their 
  210.         return values (.T.) indicate success.  This occurs when locking 
  211.         a record in the child database of a relation, after the record 
  212.         pointer has been repositioned by a SEEK or GOTO, but before the 
  213.         data has been accessed.
  214.  
  215.  
  216.     o Solution:  
  217.         A workaround for this problem is to use DBRLOCK( RECNO() ) 
  218.         instead of RLOCK() or DBRLOCK().  A simple way to implement this 
  219.         is:
  220.  
  221.         1. Add the following statements to a copy of the std.ch header 
  222.            file: 
  223.                       #translate RLOCK() => DBRLOCK( RECNO() )
  224.                       #translate DBRLOCK() => DBRLOCK( RECNO() )
  225.  
  226.         2. Re-compile your program with the /u<file> option, where
  227.         <file> is the modified STD.CH file.  
  228.  
  229.  
  230.     o   EXAMPLE:
  231.                   use child shared new
  232.                   set index to childntx
  233.                   use parent shared new
  234.                   set relation to FieldOne into child
  235.                   goto 2
  236. --------------->  if ( rlock() )  // change this rlock() to dbrlock(recno()) 
  237.                      replace child->FieldTwo with parent->FieldTwo
  238.                   endif
  239.                   close data
  240.                   return
  241.  
  242.  
  243.     o Note:  
  244.         This is a temporary workaround while a solution for the problem is
  245.         being worked upon.
  246.  
  247.  
  248.  
  249. ==============================================================================
  250. ==============================================================================
  251.