home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / plusbkup.zip / PLUSBKUP.PRG < prev   
Text File  |  1987-02-26  |  4KB  |  166 lines

  1.  
  2.  
  3. * PLUSBKUP - dBASE III PLUS Backup procedure for backing up large
  4. * database files ( > 360K bytes) to floppy diskettes.
  5.  
  6. * ask for location and name of file
  7. set talk off
  8. set echo off
  9. clear
  10. @ 2,1 to 23,79 double
  11. mname=space(8)
  12. mdrive=space(1)
  13. mpath=space(30)
  14.  
  15. @ 4,20 say "  dBASE III PLUS - LARGE FILE BACKUP PROCEDURE "
  16.  
  17. @ 8,10 say "  DISK DRIVE (C,D): "
  18. @ 8,40 say "Enter X to EXIT this procedure"
  19. @ 9,10 say "         Database NAME: "
  20.  
  21. do while .T.
  22.    @ 8,35 get mdrive picture "!"
  23.    @ 9,35 get mname  picture "!!!!!!!!"
  24.    read
  25.    @ 11,10 say replicate(" ",60)
  26.    if (mdrive $ "CD" .and. mname <> space(8)) .or. mdrive = "X"
  27.       exit
  28.    endif
  29.    @ 11,10 say " DRIVE must be C,D, (or X) - Name must not be blank "
  30. enddo    
  31.  
  32. If mdrive="X"
  33.    return
  34. endif
  35.  
  36. set default to &mdrive
  37.  
  38. @ 11,6 say "Enter PATH to database file:"
  39. @ 12,6 say "DO NOT ENTER THE DRIVE LETTERS! (assumed to be what you entered above)"
  40. @ 13,6 say "(Leave Blank if database file is in default directory)" 
  41. @ 14,6 say "(Remember to include a final backslash (\))"
  42. @ 11,40 get mpath picture "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  43. read
  44.  
  45. if mpath <> space(30)
  46.    kp=mdrive+":"+mpath
  47.    set path to &kp
  48. endif
  49. errx="N"
  50. close databases
  51. on error store "Y" to errx 
  52. use &mname
  53.  
  54. if errx = "Y"
  55.          @ 20,20 say "Sorry, File Not Found.  Aborting Routine"
  56.          close databases
  57.          on error
  58.          return
  59. endif
  60. nhhrec = INT(355000/(recsize()+1))
  61. nhhrec = nhhrec - mod(nhhrec,100)
  62. nhhdisk = int(reccount()/nhhrec)+1
  63.  
  64. @ 16,10 SAY " You will need "
  65. SET COLOR TO W+
  66. ?? transform(nhhdisk,"99")+" FORMATTED DISKS "
  67. SET COLOR TO W
  68. ?? " to backup your data file"
  69.  
  70. mrsp=SPACE(1)
  71.  
  72. @ 17,6 say "Label "+transform(nhhdisk,"99")+" of these disks "+mname+" BACKUP"
  73. if nhhdisk > 1
  74.   ?? ", number them from 1 to "+  transform(nhhdisk,"99")
  75. endif
  76.  
  77. set color to w+
  78. @ 20,10 say "X"
  79. set color to w
  80. ?? ":Abort Backup Procedure  "
  81. set color to w+
  82. ?? "C"
  83. set color to w
  84. ?? "ontinue Backup  "
  85. set color to w+
  86. ?? "   ENTER C/X: "
  87.  
  88.  
  89. do while .T.
  90.    @ 20,70 get mrsp picture "!"
  91.    read
  92.    if mrsp $ "CX"
  93.       exit
  94.    endif
  95.    set color to w+
  96.    @ 21,30 say " Invalid Entry, Reenter"
  97. enddo
  98. if mrsp = "X"
  99.    @ 2,2 clear to 22,78
  100.    return
  101. endif
  102. @ 15,2 clear to 22,78  
  103.  
  104. select 1
  105. use &mname
  106. go top
  107. j=0
  108. k=1
  109. lname=trim(mname)
  110. ln=len(lname)
  111. ln=iif(ln=8,ln-1,ln)
  112. ks="A:"+left(mname,ln)
  113. kl=ks+transform(k,"9")
  114. do while .T.
  115. set color to w+
  116. hi=j+nhhrec
  117. @ 17,4 clear to 21,76
  118. @ 24,0 say replicate(" ",77)
  119. @ 18,9 say "Put "+mname+" Backup Diskette "+transform(k,"99")+" in drive A: and close drive "
  120. @ 17,4 to 19,76
  121. @ 23,79 say ""
  122. wait
  123. @ 24,0 say replicate(" ",60)
  124. @ 17,4 to 21,76
  125. on error @20,6 say "CASE STATEMENT ERROR"
  126. do case
  127.    case nhhdisk = 1
  128.         @ 20,6 say "Copying all "+transform(reccount(),"9999")+" Records to backup disk as "+kl+".DBF"
  129.    case k < nhhdisk
  130.         @ 20,6 say "Copying  "+transform(nhhrec,"9999")+" Records to backup disk as "+kl+".DBF"
  131.    case k = nhhdisk
  132.         kk=reccount() - ( (nhhdisk-1) * nhhrec) 
  133.         @ 20,6 say "Copying remaining "+transform(kk,"9999")+" Records to backup disk as "+kl+".DBF"
  134. endcase
  135. on error
  136. @ 24,3 say " NOTE: Each Floppy Backup Disk will take one to five minutes to fill "
  137. set safety off
  138. copy to &kl while .not. eof() .and. recno() <= hi
  139. set safety on
  140. if eof()
  141.    exit
  142. endif
  143. j=j+nhhrec
  144. k=k+1
  145. kl=ks+transform(k,"9")
  146. enddo
  147.  
  148. @ 24,0 say replicate(" ",77)
  149. @ 22,30 say " DATABASE BACKUP COMPLETE "
  150. @ 23,79 say ""
  151. wait
  152. @ 17,4 clear to 22,76
  153. @ 24,0 say replicate(" ",77) 
  154. close databases
  155. set color to w
  156. clear
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.