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 / MBUG075.ARC / DBASE.DOC < prev    next >
Text File  |  1979-12-31  |  18KB  |  433 lines

  1. .pl70
  2.                          USING dBASE II 
  3.  
  4.                     by GRAHAM COLLINS - MUGSA 
  5.  
  6.  
  7. INTRODUCTION
  8.  
  9.      There are a number of database programs available which 
  10. allow you to store, alter, and retrieve files of information.  
  11. The difference between these programs and word processors is that 
  12. database programs allow you to manipulate the stored information 
  13. in many different ways, e.g. sorting and indexing.
  14.  
  15. WHAT_IS_A_DATABASE?
  16.  
  17.      The term DATABASE refers to a collection of information 
  18. which is organised in a structured way, e.g. address records:
  19.  
  20. Record         Field 1        Field 2               Field 3
  21. No.             (Name)       (Address)            (City, State)
  22.  
  23. 0001           John Smith     163 Main St         Adelaide, S.A.
  24. 0002           Bill Jones     21 West St          Melbourne, Vic
  25. 0003           Robin Hood     44 Sherbrooke Av    Perth, W.A.
  26.  
  27.      Any database can contain 1 or more records.  Each record can 
  28. contain up to 32 fields of information.
  29.  
  30.      Different types of fields are allowed:
  31.  
  32.      1.  Character fields - these can contain text (i.e. 
  33. "strings" of characters)
  34.  
  35.      2.  Numeric fields - these can contain numbers, including 
  36. decimals, but no alphabetical characters or spaces.
  37.  
  38.      3.  Logical fields - these can contain T (true), F (false), 
  39. Y (yes), or N (no).
  40.  
  41.      You are going to set up a database file on some of the 
  42. wineries in the Barossa Valley (see Table 1, next page).
  43.  
  44. STARTING_UP
  45.  
  46.      Turn on the computer, and insert the dBase-II system disk 
  47. into drive A.  After the CP/M prompt (A>) comes up, type: DBASE-
  48. II.  You may either enter the date, or just press RTN.
  49.  
  50.      At this stage you should see the dBase-II prompt which is: . 
  51.  
  52. LOGGING_ON_TO_DRIVE_B
  53.  
  54.      Insert your CP/M data disk into drive B and type: SET 
  55. DEFAULT TO B.  This informs the dBase-II program that files 
  56. should be stored and retrieved from the disk in drive B.
  57. SETTING_UP_A_RECORD_STRUCTURE
  58.  
  59.      When the prompt: . reappears, type: CREATE, and in response 
  60. to the question on the screen, type WINRYLST as your file name 
  61. (note that the maximum length of a file name is 8 characters).
  62.  
  63.      Now dBase-II will ask you to set up your record structure.  
  64. Call field 001 Winery.  It is a character field, and if you 
  65. examine Table 1 you will see that the longest name is 32 charac
  66. ters, so that is the length you will use.  There are no decimal 
  67. places.  So you should enter: Winery,C,32.  Use the same proc
  68. edure to enter fields 2 (Address), 3 (District), and 4 (Phone).
  69.  
  70.      When your record structure is set up it should look like:
  71.  
  72. Field     Name, Type, Width, Decimal Places
  73. 001       WINERY,C,32
  74. 002       ADDRESS,C,18
  75. 003       DISTRICT,C,13 
  76. 004       PHONE,N,6
  77.  
  78.      Instead of entering field 005, press RTN to exit, and press 
  79. Y to take the option of entering data straight away (N would take 
  80. you back to the dBase-II prompt).  The screen will now be set up 
  81. ready to accept information.
  82.  
  83. ENTERING_THE_RECORDS
  84.  
  85.      Type in the information in Table 1 (don't worry too much 
  86. about any typing mistakes, there are some deliberate ones 
  87. anyway).  Notice that when the number of characters entered 
  88. equals the length of the field, the cursor goes to the next field 
  89. without you having to press RTN.
  90.  
  91. Table 1:  List of wineries to enter into dBase-II file called 
  92. WINRYLST
  93.  
  94. BAROSSA SETTLERS, TRIAL HILL RD, LYNDOCH, 244017
  95. EDEN SPRINGS WINE ESTATE PTY LTD, KING ST, WILLIAMSTOWN, 246404
  96. OLD STOCKWELL CELLARS WINERY, DUCKPOND RD, NURIOOTPA, 622136
  97. BONNEYVIEW WINES PTY LTD, STURT HWY, BARMERA, 882279
  98. LEO BURING PTY LTD, PARA RD, TANUNDA, 632184
  99. SEPPELT B & SONS, MILL ST, SEPPELTSFIELD, 632626
  100. MOCULTA WINE CO, TRURO RD, MOCULTA, 639065
  101. LE VIGNE, SEPPELTSFIELD RD, MARANANGA, 622880
  102. WARDS GATEWAY CELLAR PTY LTD, BAROSSA VALLEY HWY, LYNDOCH, 244138
  103. MOUTADAM VINEYARD, LOW EDEN RD, EDEN VALLEY, 641101
  104. SEMMLER BROS, LYNDOCH VALLEY RD, LYNDOCH, 244327
  105.  
  106. SAVING_THE_RECORDS
  107.  
  108.      When you get to record 0012, press RTN to end the entry of 
  109. data.  The red light should show on drive B to indicate that the 
  110. file is being saved.  If this doesn't happen, type: USE WINRYLST.  
  111.  
  112. SEEING_WHAT'S_ON_THE_DISK
  113.  
  114.      To see what files are on your disk, type: DISPLAY FILES.  
  115. You will see on the screen a list of all data base files (DBF) 
  116. currently stored on the disk.  WINRYLST should be one of them.
  117.  
  118.  
  119.  
  120. EXAMINING_AND_EDITING_THE_RECORDS
  121.  
  122.      Now that you have set up a database with 11 records, you can 
  123. manipulate the data.  If you haven't already typed: USE WINRYLST 
  124. then do it now.  Then clear the screen by typing: ERASE.  (If you 
  125. had not typed SET DEFAULT TO B at the start of this session, you 
  126. could still bring up WINRYLST by typing: USE B: WINRYLST).
  127.  
  128.      To list all of the records in your file, type: LIST.  If you 
  129. don't want the record numbers to show up during a listing, type 
  130. LIST OFF.
  131.  
  132.      The command EDIT allows you to edit selected records in the 
  133. database currently in USE.  The address of Mountadam Vineyard is 
  134. really HIGH EDEN RD not LOW EDEN RD.  This change needs to be 
  135. made to that record.  Mountadam is record number 10 so type:  
  136. EDIT 10
  137.    
  138.      The full entry for record 10 will appear.  Use the following 
  139. cursor commands to bring the cursor to the right field:
  140.  
  141.      CTRL X moves the cursor down to the next field.
  142.      CTRL E moves the cursor up to the next field.
  143.      CTRL D moves the cursor ahead one character.
  144.      CTRL S moves the cursor back one character.     
  145.  
  146. (Note the similarity of these commands to those in Word Star).
  147.  
  148.      Correct the entry by overtyping, and press CTRL W to finish 
  149. the edit.  Use the same procedure to change the address of Eden 
  150. Springs Wine Estate Pty Ltd from KING ST to QUEEN ST.
  151.  
  152.      If you have any other typing errors that need to be 
  153. corrected, the following commands might be useful:
  154.  
  155.      CTRL G to delete a character
  156.      CTRL Y clears an entire field
  157.      CTRL V allows characters to be inserted
  158.      CTRL R moves back one record
  159.      CTRL C moves forward one record.
  160.  
  161.      You should experiment with these commands.
  162.  
  163.      To save all the changes to your disk, and bring up the 
  164. revised file, type: USE WINRYLST.  When the red light goes out on 
  165. drive B, and the dBase-II prompt reappears, type: LIST (or LIST 
  166. OFF) to check the records.
  167.  
  168. SORTING_THE_RECORDS
  169.  
  170.      One of the great advantages of dBase-II is its ability to 
  171. sort on various fields.  For example, suppose you want to sort on 
  172. telephone numbers.  Type: SORT ON PHONE TO WINPHONE.  This 
  173. command gets dBase-II to sort the records into order on telephone 
  174. numbers, and then puts them into a new file called WINPHONE.
  175.      Type: DISPLAY FILES and notice that WINPHONE has been 
  176. created and stored on the disk.  To see what is on the new file, 
  177. type USE WINPHONE, and then type: LIST.
  178.  
  179. Repeat this procedure to get new files called WINNAME, WINADRES, 
  180. and WINDIST.  Use the command DISPLAY FILES to check on the new 
  181. files that you have created.
  182.  
  183.      Another important use of dBase-II is to retrieve information 
  184. selectively.  For example, suppose you want to list all of the 
  185. wineries in Lyndoch.
  186.  
  187. SELECTIVE_RETRIEVAL_OF_INFORMATION
  188.  
  189.      Make sure the file WINRYLST is in use.  Type: LIST FOR 
  190. DISTRICT='LYNDOCH'.  Records 1, 9, and 11 will appear on the 
  191. screen.  
  192.  
  193.      DBASE-II has a command to allow you to search for all 
  194. occurrences of a string within a field.  For example, suppose you 
  195. wanted a list of all of the wineries in your file with limited 
  196. liability.  Type:
  197.  
  198.                       LIST FOR 'LTD'$ WINERY
  199.  
  200.      The $ sign indicates to dBase-II to search for the indicated 
  201. string in the WINERY field.  
  202.  
  203.      This search command is very powerful, and allows you to 
  204. specify more than one string.  For example, suppose you want to 
  205. search for all wineries which were situated on a highway and also 
  206. had limited liability.  Type:
  207.  
  208.              LIST FOR 'LTD'$ WINERY.OR.'HWY'$ ADDRESS
  209.  
  210. (The stops either side of the word OR are very important!)
  211.  
  212.      The same technique can be used to search for telephone 
  213. numbers within a certain range.  For example, type the following:
  214.  
  215.                      LIST FOR PHONE>600000
  216.  
  217.      This brings up 7 records.  
  218.  
  219.      Finally, a single telephone number can be displayed by 
  220. typing LIST FOR PHONE=xxxxxx (insert the extension number you 
  221. want in place of xxxxxx), or you can search for a particular 
  222. address by typing LIST FOR ADDRESS='TRIAL HILL RD' (in this case, 
  223. ADDRESS was declared by you to be a character field when you set 
  224. up the database, so it must be enclosed in single quotes).
  225.  
  226. ADDING_MORE_RECORDS
  227.  
  228.      The APPEND command is used to add records to a database.  As 
  229. an example, you are going to add another winery to your database 
  230. WINRYLST.  The data for this is:
  231.  
  232. CHATEAU DORRIEN WINERY & TOURIST CENTRE, STURT HWY, NURIOOTPA, 
  233. 622850.
  234.  
  235.      A problem now arises.  The Winery field in your database is 
  236. 32 characters in length, but the new name is 39 characters.  This 
  237. means that you will have to modify the structure of WINRYLST. 
  238. dBase-II allows you to do this, but modifying_the_structure
  239. of_a_database_deletes_all_of_the_records_within_it.  Therefore, 
  240. the records should first of all be copied into a temporary file.  
  241.  
  242. Use the following procedure:
  243. 1.  .COPY TO TEMP
  244. 2.  .MODIFY STRUCTURE, then type Y to proceed
  245. 3.  When the structure is displayed, make changes using the normal 
  246.     cursor control keys.
  247. 4.  Press CTRL W to save the new structure
  248. 5.  .APPEND FROM TEMP
  249. 6.  .DELETE FILE TEMP 
  250.  
  251.      You can now type: DISPLAY STRUCTURE to check that the new 
  252. structure has a Name field of 39 characters.  Type APPEND, and 
  253. add the new record.
  254.  
  255.      List the records, and save by typing USE WINRYLST.  Now 
  256. update the sorted files by recreating WINNAME, WINADRES, WINDIST, 
  257. AND WINPHONE.  Make sure these files are correct by bringing up 
  258. each in turn, and listing them.
  259.  
  260. THE_BROWSE_COMMAND
  261.  
  262.      dBase-II has a command called BROWSE which lets you move 
  263. through the contents of a database, examining, editing, deleting, 
  264. etc.  Call up WINNAME and type: BROWSE.  All of the records will 
  265. be displayed.  Move the cursor with CTRL E and CTRL X, and watch 
  266. the record number at the top of the screen.  If you want to, you 
  267. can edit any record in the normal way.
  268.  
  269.      You may only want to examine names and telephone numbers.  
  270. In this case, type CTRL W to exit from BROWSE, and then type:
  271.  
  272.                   BROWSE FIELDS WINERY,PHONE
  273.  
  274.      You will get an alphabetical listing of names with their 
  275. telephone numbers.  Type CTRL W again.
  276.  
  277. INDEXED_SORTING
  278.  
  279.      The SORT command in dBase-II allows you to sort on a 
  280. particular field.  For sorting on more than one field, there is 
  281. the INDEX command.  For example, suppose you wanted to index 
  282. WINRYLST on name and district fields.  These then become the 
  283. key_fields.  Type the following:
  284.  
  285.                   INDEX ON DISTRICT+WINERY TO WNDEX
  286.  
  287.      This tells dBase-II to put the districts into alphabetical 
  288. order, and then to arrange the wineries into alphabetical order 
  289. within each district.  To check that the index file is on the 
  290. disk, type:  
  291.  
  292.                     DISPLAY FILES LIKE *.NDX.
  293.  
  294.      To see what is on the indexed file, type:  USE WINRYLST 
  295. INDEX WNDEX.  This instructs dBase-II to use the index file WNDEX 
  296. created from the database file WINRYLST.  Now type: LIST (or: 
  297. LIST OFF).
  298.  
  299.      Notice that when wineries occur in the same district (the 
  300. primary field), their names (secondary field) are in alphabetical 
  301. order.  You can see that if you were constructing a database of 
  302. records on any subject , you would easily be able to arrange the 
  303. data in a variety of ways.
  304.  
  305.      The BROWSE command can be used on an index file to allow you 
  306. to move through the file and do some editing using the commands 
  307. mentioned previously.  Type: BROWSE.  You should see only one 
  308. record because the file pointer moved to the bottom when you did 
  309. the previous LIST.  Type CTRL W to get out of BROWSE, and then 
  310. type: GO TOP to instruct the file pointer to go to the top of the 
  311. file.  Now type: BROWSE again, and all of the records will be 
  312. displayed.
  313.  
  314.      Type CTRL W to get out of BROWSE, and type LIST FOR DISTRICT 
  315. ='LYN'.  This command will enable you to get a listing of all of 
  316. the wineries in Lyndoch without having to type the entire 
  317. district name.
  318.  
  319. DELETING_RECORDS
  320.  
  321.      Sometimes you need to get rid of records from a database.  
  322. For example, suppose you wanted to remove LE VIGNE.  The DELETE 
  323. command is used to mark records for deletion, and the PACK 
  324. command then removes them completely.
  325.  
  326.      Type: USE WINRYLST to bring up your main file and display 
  327. the records with LIST OFF.  LE VIGNE is record number 8 so type:  
  328. DELETE RECORD 8
  329.  
  330.      Now type LIST OFF again and note that LE VIGNE is now marked 
  331. for deletion.  If you change your mind at this stage and decide 
  332. to keep LE VIGNE, you can type RECALL RECORD 8.
  333.  
  334.      Let's assume that you haven't changed your mind, so type: 
  335. PACK
  336.  
  337.      Now type LIST OFF and note that LE VIGNE has been removed 
  338. completely and permanently.
  339.  
  340. PROGRAMMING_WITH_dBASE_II
  341.  
  342.      dBase-II can be programmed to carry out a series of 
  343. procedures automatically.  This can be illustrated by two simple 
  344. programs.
  345.  
  346.      Delete WINPHONE by typing DELETE FILE WINPHONE.  Then type: 
  347. MODIFY COMMAND PHONE
  348.  
  349.      This instructs dBase-II that you are going to set up a 
  350. command program called PHONE.CMD.  When the screen clears, type 
  351. in the following (don't type the explanations on the right-hand 
  352. side):
  353. SET TALK OFF                  - turns off dBase-II prompts
  354. ERASE                         - clear screen
  355. USE WINRYLST                  - put datadase WINRYLST into use
  356. SORT ON PHONE TO WINPHONE     - create a file call WINPHONE 
  357.                                 containing records sorted on 
  358.                                 telephone numbers.
  359. USE WINPHONE                  - put database WINPHONE into use
  360. LIST OFF                      - list the records
  361. CLEAR                         - close files and reset variables
  362. SET TALK ON                   - restore Dbase-II prompts
  363. RETURN                        - stop operation of command file
  364.                                 and return to dot prompt    
  365.  
  366.      Press CTRL W to save the command file onto your disk.  Now 
  367. type DO PHONE.  When the procedure is finished, check that a new 
  368. file called WINPHONE has been added to the disk.
  369.  
  370.      A second example of programming with dBase-II will allow you 
  371. to add new records to your WINRYLST file automatically.  Type 
  372. MODIFY COMMAND WINRYADD and then type the following program 
  373. (don't include the explanations on the right-hand side).
  374.  
  375. *WINRYADD PROGRAM                  - lines with * are not executed
  376. ERASE                              - clear screen
  377. SET TALK OFF                       - turn off dBase-II prompts
  378. USE WINRYLST                       - put database WINRYLST into use
  379. STORE T TO RERUN                   - store "T" in memory and label the
  380.                                      location where stored as "RERUN"
  381. DO WHILE RERUN='T'                 - do the following as long as RERUN
  382.                                      is storing "T"
  383. APPEND BLANK                       - put a blank record on the end of
  384.                                      WINRYLST
  385.  
  386. @ 7,10 SAY'ENTER THE NAME OF THE WINERY 'GET WINERY 
  387.                                    - print 'ENTER THE WINERY' on 
  388.                                      the screen at row 7, column 10
  389. @ 9,10 SAY'ENTER THE ADDRESS            'GET ADDRESS
  390. @ 11,10 SAY'ENTER THE DISTRICT           'GET DISTRICT
  391. @ 13,10 SAY'ENTER THE TELEPHONE NUMBER   'GET PHONE
  392. READ                               - read data into the blank record
  393. @ 16,10 SAY'DO YOU WANT TO ADD MORE WINERIES (Y OR N)'
  394. WAIT TO CHOICE                     - wait for user to enter "Y" or "N"
  395. IF (CHOICE)='N'                    - )if user enters "N", then
  396. STORE F TO RERUN                   - )change RERUN to "F"
  397. ENDIF                              - end of the IF loop
  398. ENDDO                              - end of the DO loop; if RERUN 
  399.                                      stores "T" then repeat the 
  400.                                      program, otherwise go to the
  401.                                      next statement
  402. CLEAR                              - close files and reset variables
  403. SET TALK ON                        - restore dBase-II prompts
  404. RETURN                             - stop operation of command file
  405.                                      and return to dot prompt
  406.  
  407.      When the program has been entered, type CTRL W to save it, and 
  408. execute the commands by typing: DO WINRYADD and enter any new records 
  409. that you want to. 
  410.  
  411.      When you have finished entering records, and the dBASE II prompt 
  412. has returned, bring up the WINRYLST file and examine it to see the new 
  413. records that you have just added.
  414.  
  415. PRINTING_THE_RECORDS
  416.  
  417.      To do any prdNting with Dbase-II, the printer is turned on by 
  418. typing SET PRINT ON, and likewise the printer is turned off by typing 
  419. SET PRINT OFF.
  420.  
  421.      As an example, bring up the index file by typing USE WINRYLST 
  422. INDEX WNDEX.  Then type SET PRINT ON and type LIST OFF.  The records 
  423. will be sent to the printer.  When you have finished, type SET PRINT 
  424. OFF.
  425.  
  426.      Type: QUIT to end the session.
  427.  AME) = "Q" .OR. $(LNAME,1,1)=" "
  428.         STORE F TO TRUE
  429.     ENDIF
  430.     SET INDEX TO NAME
  431.     STORE T TO FIRST
  432.  
  433.     **** LOOP2 OF SUBROUTINE