home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / MBUG / MBUG123.ARC / BOOK2.LBR / MAINTAIN.BQ / MAINTAIN.BK
Text File  |  1979-12-31  |  9KB  |  271 lines

  1. * DATE 04/01/85  22:46
  2. * maintain.bk - file maintenance
  3. STOR t TO more
  4. DO WHIL more
  5.  STOR CHR(PEEK(063)) TO dr
  6.  ERAS
  7.  STOR '?' TO command
  8.  @ 02,00 SAY '---------------------'
  9.  @ 02,20 SAY '---------------------'
  10.  @ 02,40 SAY '---------------------'
  11.  @ 02,60 SAY '--------------------'
  12.  @ 02,19 SAY '> > > F I L E  M A I N T E N A N C E < < <'
  13.  @ 05,22 SAY 'A. Find duplicate records'
  14.  @ 06,22 SAY 'B. Verify and merge new entries'
  15.  @ 07,22 SAY 'C. Verify deleted entries'
  16.  @ 08,22 SAY 'D. Purge deleted entries from file'
  17.  @ 09,22 SAY 'E. Backup data file'
  18.  @ 10,22 SAY 'F. Re-index the records'
  19.  @ 11,22 SAY 'G. Use browse command'
  20.  @ 12,22 SAY 'H. Change default values'
  21.  @ 13,22 SAY 'I. Create a new database'
  22.  @ 14,22 SAY 'J. Return to main menu'
  23.  @ 17,00 SAY '--------------------'
  24.  @ 17,20 SAY '--------------------'
  25.  @ 17,40 SAY '--------------------'
  26.  @ 17,60 SAY '--------------------'
  27.  @ 19,30 SAY 'WHAT NEXT'
  28.  @ 19,40 GET command picture '!'
  29.  READ
  30.  DO CASE
  31.  CASE command = 'A'
  32.   ERAS
  33.   @ 07,22 SAY'Looking for duplicate records'
  34.   DO dupcheck.bk
  35.  CASE command = 'B'
  36.   ERAS
  37.   @ 07,22 SAY'Looking for un-verified new records'
  38.   DO verifnew.bk
  39.  CASE command = 'C'
  40.   ERAS
  41.   @ 07,22 SAY'Looking for records marked for deletion'
  42.   DO verifdel.bk
  43.  CASE command = 'D'
  44.   DO purge.bk
  45.  CASE command = 'E'
  46.   STOR 'Y' TO doit
  47.   ERAS
  48.   @ 01,05 SAY 'This module makes a backup of the DATA File to another disk'
  49.   @ 03,05 SAY 'Do you want to do a backup of the DATA File (Y/N) ?'
  50.   @ 03,59 GET doit PICTURE '!'
  51.   READ
  52.   IF doit = 'Y'
  53.    @ 03,00
  54.    @ 07,05 SAY 'The DATA File is on drive '+dr+' and you normally backup to drive B'
  55.    @ 09,05 SAY 'Make sure the backup disk is in the drive selected for backup'
  56.    RESE
  57.    STOR 'B' TO bdr
  58.    @ 13,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!'
  59.    READ
  60.    DO WHIL @(bdr,'AB') = 0
  61.     @ 13,05 SAY 'Which drive selected for backup DATA File ? ' GET bdr PICTURE '!'
  62.     READ
  63.    ENDD
  64.    IF bdr <> dr
  65.     @ 17,05 SAY 'Now copying DATA File from drive '+dr+' to drive '+bdr+ ' '
  66.     COPY TO &bdr.:bookbak
  67.    ELSE
  68.     @ 17,05 SAY "Can't backup to same drive - Aborting"
  69.     @ 23,00 SAY 'Hit RETURN to Continue'
  70.     SET CONSOLE OFF
  71.     WAIT
  72.     SET CONSOLE ON
  73.    ENDI
  74.   ENDI
  75.  CASE command = 'F'
  76.   ERAS
  77.   @ 7,00 SAY 'Records are now being re-indexed'
  78.   @ 9,00 SAY 'I will keep you posted as I go along - but......'
  79.   @ 10,00 SAY 'Please be patient as this will take a little time'
  80.   @ 12,00 SAY ' '
  81.   REST FROM bdata additive
  82.   STOR CHR(PEEK(063)) TO dr
  83.   SET TALK ON
  84.   SET ECHO ON
  85.   INDE ON !(title) TO &dr.:&tindex
  86.   INDE ON !(auth1) TO &dr.:&aindex
  87.   SET INDEX TO &dr.:&tindex
  88.   SET TALK OFF
  89.   SET ECHO OFF
  90.  CASE command = 'G'
  91.   ERAS
  92.   @ 01,12 SAY '***WARNING***  ***WARNING***  ***WARNING***'
  93.   @ 02,12 SAY 'Changes made will be written to the File'
  94.   @ 04,12 SAY 'Use this function with extreme care !!!!'
  95.   @ 06,12 SAY 'CTRL-C write current record & go down'
  96.   @ 07,12 SAY 'CTRL-R write current record & go up'
  97.   @ 08,12 SAY 'CTRL-Z/B pans screen left or right'
  98.   @ 09,12 SAY 'CTRL-V toggles Insert on or off'
  99.   @ 10,12 SAY 'CTRL-G Delete character under cursor'
  100.   @ 11,12 SAY 'CTRL-U Delete or Recall current record'
  101.   @ 12,12 SAY "CTRL-Q exit Don't Write Current record"
  102.   @ 13,12 SAY 'CTRL-W exit and Save all changes'
  103.   STOR 'T' TO info
  104.   @ 17,12 SAY 'You can browse by <T>itle or by <A>uthor.'
  105.   @ 18,20 SAY 'Which shall it be ? '
  106.   @ 18,42 GET info PICTURE '!'
  107.   READ
  108.   REST FROM bdata additive
  109.   STOR CHR(PEEK(063)) TO dr
  110.   IF info = 'A'
  111.    SET index TO &dr.:&aindex
  112.   ELSE
  113.    SET index TO &dr.:&tindex
  114.   ENDI
  115.   STOR 'A' TO letter
  116.   @ 20,12 SAY 'At what letter of alphabet to start browsing'
  117.   @ 20,57 Get letter PICTURE '!'
  118.   READ
  119.   FIND &letter
  120.   IF # = 0
  121.    DO WHIL # = 0
  122.     STOR RANK(letter) + 1 TO nextl
  123.     IF nextl <= 91
  124.      STOR CHR(nextl) TO next
  125.      FIND &next
  126.      STOR next TO letter
  127.     ELSE
  128.      GO top
  129.     ENDI nextl
  130.    ENDD
  131.   ENDI
  132.   SET ESCAPE OFF
  133.   IF info = 'A'
  134.    BROW fields auth1, auth2, auth3
  135.   ELSE
  136.    BROW
  137.   ENDI
  138.   SET ESCAPE ON
  139.   SET INDEX TO &dr.:&tindex
  140.   RELE letter, next, nextl, info
  141.  CASE command = 'H'
  142.   DO init.bk
  143.  CASE command = '?'
  144.   ERAS
  145. TEXT
  146.  
  147.  
  148.         M A I N T E N A N C E   M E N U   H E L P   S C R E E N
  149.  
  150.     The duplicate record option will allow you to find records
  151.     that may be duplicates. In that option you will have the opportunity 
  152.     to edit or delete the records presented.
  153.  
  154.         Everytime you add a new record the program makes a note in the
  155.     file that the item is new. The verify new module brings up all of the
  156.     new records and gives you the chance to accept or reject them or to     
  157.     edit them.
  158.  
  159.         The verify deleted records option brings up all records which 
  160.     have been marked deleted. It gives you a second chance before you
  161.     run the purge option - which permanently removes the records from
  162.     the files (and then reindexes the file).
  163.  
  164.         Backup is an option to make a backup copy of the data file. It
  165.     is preferable to use a full disk backup program to copy the data
  166.     disk. Browse is a handy option - but for expert use only.
  167.                       Please hit any key to continue.........
  168. ENDT
  169.   SET CONSOLE OFF
  170.   WAIT
  171.   SET CONSOLE ON
  172.   ERAS
  173. TEXT
  174.            The reindex command allows you to reindex all off the
  175.      index files connected with the data base.  You will note that 
  176.      every so often dBASE will give you a 'RECORD OUT OF RANGE'
  177.      error message.  That usually means there is an incorrect end  
  178.      of file marker in the file.  First reindex to see if that
  179.      solves the problem.  If that does not work, go into dBASE
  180.      after renaming the problem file 'TEMP.DBF.'  Then, while
  181.      in dBASE - 'USE TEMP' and then COPY TO (the original file
  182.      name).  That should solve it.  If you still have lost records,
  183.      while still using TEMP (but at what is supposedly the end of
  184.      the file) SKIP 2 and then COPY NEXT 500 TO TEMP1. Chances are
  185.      you will recover just about all of the records.  If that doesn't
  186.      work, try one of the commercial programs, such as REPAIR (from
  187.      HILCO SOFTWARE, Mt. Vernon, Washington) to fix the data base.
  188.  
  189.      Defaults are reset by the default reset option.  The create new data
  190.      base option will allow you to set up a new blank data base. After you  
  191.      create it you should go to the add option to put data in it. (When you
  192.      return to the main menu you will see data from the earlier data base.
  193.      However, you will actually be in the NEW data base.)
  194.  
  195.                              Hit any key to return to the program.......
  196. ENDT
  197.   SET CONSOLE OFF
  198.   WAIT
  199.   SET CONSOLE ON
  200.   ERAS
  201.  CASE command = 'I'
  202.   ERAS
  203.   STOR CHR(PEEK(063)) TO dr
  204.   STOR dr TO dr1
  205.   STOR 'N' TO answer
  206.   STOR '        ' TO newdbf
  207.   @ 05,10 SAY 'What is the name of the new database ? '
  208.   @ 05,60 GET newdbf PICTURE 'BK!!!!!!'
  209.   READ
  210.   @ 06,10 SAY 'On what drive do you want this database '
  211.   @ 06,60 GET dr1 PICTURE '!'
  212.   READ
  213.   IF dr1 = dr
  214.    @ 10,10 SAY 'You can change data disks if you want to (BUT ONLY IF THE DATA AND'
  215.    @ 11,10 SAY 'THE PROGRAM ARE ON DIFFERENT DISKS)'
  216.    @ 13,10 SAY 'DO YOU WANT TO CHANGE DATA DISKS ?'
  217.    @ 13,52 GET answer PICTURE '!'
  218.    READ
  219.   ENDI dr1
  220.   STOR dr1 TO dr
  221.   POKE 063,(64+@(dr,'ABDCEFGHIJKLMNOPQRSTUVWXYZ'))
  222.   IF .NOT. FILE ("&newdbf")
  223.    IF answer = 'Y'
  224.     COPY STRUCT TO TEMP
  225.     USE TEMP
  226.     @ 15,10 SAY 'PUT A FORMATTED DISK IN DRIVE '+dr1+'. HIT ANY KEY WHEN DONE'
  227.     SET CONSOLE OFF
  228.     WAIT
  229.     SET CONSOLE ON
  230.     RESE
  231.     COPY TO &dr.:&newdbf
  232.     USE &dr.:&newdbf
  233.     DELE FILE TEMP
  234.    ELSE
  235.     COPY STRUCT TO &dr.:&newdbf
  236.     USE &dr.:&newdbf
  237.    ENDI answer = 'Y'
  238.    STOR newdbf+'.dbf' TO base
  239.    RELE answer, dr1,
  240.    STOR 'T' +TRIM($(base,1,7)) TO tindex
  241.    STOR 'A' +TRIM($(base,1,7)) TO aindex
  242.    STOR TRIM($(base,1,8)) TO base
  243.    RELE add, more, command, newdbf            
  244.    SAVE TO bdata
  245.    STORE t TO more  
  246.    INDE ON !(title) TO &dr.:&tindex
  247.    INDE ON !(auth1) TO &dr.:&aindex
  248.    SET INDEX TO &dr.:&tindex
  249.    ERAS
  250.    @ 10,10 SAY 'The first thing you should do is return to the main menu and'
  251.    @ 11,10 SAY 'then go to ADD records.  Until you add a record and index the'
  252.    @ 12,10 SAY 'file will show a record from the prior data base which can be'
  253.    @ 13,10 SAY 'quite confusing and can cause problems.'
  254.    @ 15,30 SAY 'HIT ANY KEY TO CONTINUE'
  255.   SET CONSOL OFF
  256.   WAIT
  257.   SET CONSOL ON
  258.   ELSE
  259.    @ 15,10 SAY 'Data base already exists - please return to main menu and try again'
  260.    @ 17,40 SAY 'HIT ANY KEY TO CONTINUE'
  261.    SET CONSOL OFF
  262.    WAIT
  263.    SET CONSOL ON
  264.   ENDI
  265.  CASE (command = 'J' .OR. command = 'Q')
  266.   STOR f TO more
  267.  ENDC
  268. ENDD
  269. RELE ALL
  270. STOR t TO first
  271.