home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / plusbkup.zip / DB3BKUP.PRG next >
Text File  |  1987-03-02  |  3KB  |  168 lines

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