Home » Archimedes archive » Archimedes World » AW-1994-04-Disc2.adf » Disk2Apr94 » !AWApr94/Goodies/PowerBase/PBaseDoc/Utilities
!AWApr94/Goodies/PowerBase/PBaseDoc/Utilities
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1994-04-Disc2.adf » Disk2Apr94 |
Filename: | !AWApr94/Goodies/PowerBase/PBaseDoc/Utilities |
Read OK: | ✔ |
File size: | 2814 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
Powerbase Utilities =================== Under this heading we will group a number of things which can be done from the 'Utiltites' sub-menu of the icon-bar menu to examine and alter the structure of an existing database. Note that, if passwords have been set, you need to open the database with the 'Manager'-level password to obtain access to this sub-menu. Changing the Primary Key ======================== The primary key of a database is determined when it is created, but it is not fixed for all time. The option provided from the 'Utilities' submenu displays the same dialogue box as is used for creating the primary key in the first place, but with the addition of two radio buttons, whose function is described below. The present key structure is shown. Simply alter it to what you require and click on 'OK' or type RETURN. Confirmation is requested. Normally the first of the two radio buttons is selected, causing the records to appear in the same subfiles as they did before. In this case, any additional indices will still be valid. If you deselect this radio button with ADJUST (i.e. have neither button selected) then all the records will be placed in the currently selected subfile. Selecting the second radio button also places the records in the current subfile, but has the additional effect of recovering any "deleted" records, i.e. records which are still lurking in the 'Database' file but aren't in the primary key index. In fact this mode of operation ignores the existing primary key altogether. There is one very important circumstance under which you would need to do this: when the primary key index is lost or corrupted. NOTE: You might have a 'Database' file but no 'PrimaryKey' file at all. This could happen if you have, for example, created a suitable text file and then set its type to 'Database'. To build a primary key for such a file the only valid setting for the radio buttons is the one just described, i.e. second button selected. To enforce this mode both radio buttons are shaded. Adjusting the record format =========================== Minor changes to the screen layout can be made without having to rebuild the database. Choose the 'Adjust format' menu option and you will be presented with the blank record screen. Clicking MENU over this brings up the same menu as you used to create the screen originally, but the field-definition dialogue box has some options shaded. Thus, you can't delete fields, add new ones or alter the data lengths, but you can re-position fields, change descriptors and tags, and alter the visible lengths. When you have finished the changes, click on the last option on the menu - 'Quit design'. Another situation in which your control over the screen design will be limited as above occurs when you have a 'Form' file and a 'Database' file but no 'PrimaryKey' file. Since this is not yet a functioning database you will be placed in "restricted design" mode. The 'Quit design' option isn't used to end the adjustments in this case. Use 'Save form file' instead. Changing the record format ========================== This is a more drastic change to make, but one can't foresee all future needs and you may have to introduce a new field into the record or lengthen an existing one. This involves rebuilding the whole database. You will need to create a new application shell with the new 'Form' file inside it. The best way to do this is probably to open the new database directory, copy the old 'Form' file into it, then open the new "database". Since no 'PrimaryKey' or 'Database' file yet exists you will be able to modify the screen design as you wish. You should not, however, go on to complete the empty database (i.e. don't choose 'Default database' or click on the 'OK' button in the primary key dialogue box) - simply save the 'Form' file using the menu choice provided. With your old database open, choose the 'Change format' option from the icon-bar menu and drag the new database to the large arrow icon in the displayed window. The database will then be rebuilt. Make sure you have plenty of disc space available before doing this since the original database remains intact so you need room for it and the new one. Data from a field in the old database is copied to a field in the new one which has the same tag. The new Form file must therefore retain the same tags as the old for data which is to be common to both. If a tag exists in the old Form file but not in the new Powerbase will assume that the relevant field has been deleted and data present in that field in the old database will not be transferred. A tag which is present in the new database but not in the old is assumed to be a newly-introduced field and will therefore be left blank. Merging a second database ========================= Two databases may be merged provided they have the same record structure. Selecting 'Merge database' displays a window like that used for changing the record format and you simply drag the second database to the arrow icon. Powerbase will check that the two record formats are identical and report an error if they aren't. If the open database has insufficient free space to hold the merged records it is automatically extended. Two radio buttons are also present, as in the dialogue box for rebuilding the primary key, and their functions are essentially the same. Thus, having the first selected will merge records into the same subfiles as those they occupied in the source database. Having neither selected will merge records into the current subfile of the open database, regardless of where they are in the source database. Having the second button selected does the same thing, but also imports records which were "deleted" in the source database. Changing the Database Length ============================ Needing to lengthen a database is a common situation. Wanting to shorten one is less common, but both are easily accomplished. 'Change length' leads to a dialogue box with two writable icons. The first of these is used to specify the new database length. You will be warned if, when shortening a database, any of the records being removed are not blank. They may be deleted data, but then again they may not. You have been warned! The other writable icon determines the number of records by which the database will be lengthened each time it becomes full. If this value is zero no auotmatic lengthening occurs - a warning message is displayed instead. Balancing index trees ===================== The tree structures used to hold indices can become very unbalanced, especially if you enter a lot of records in key-order. 'Balance index' leads to a submenu with two choices: 'Automatic' and 'Right now'. Choosing the latter will optimise all subfiles in the current index. Before using it you are recommended to examine the state of the indices with the 'Print tree' option. Choosing the first menu item ('Automatic') enables automatic balancing of all the indices in use every time the number of records entered becomes a multiple of a set value. This value is initially set to 25, i.e. indices will be balanced during record entry after each batch of 25 records, and may be altered via submenu with a single writable item. When automatic balancing is active the 'Automatic' menu choice is ticked. Clicking on it a second time turns auto-balancing off and removes the tick. Balancing can take some time, and the time increases with the number of records in the file. If you are entering records from the keyboard in a fairly haphazard sequence you should leave the 'Manual' option set. If, however, you need to enter a lot of records in primary key order it might be to your advantage to make balancing automatic whilst the database is small, returning to 'Manual' when a few dozen records have been entered. The most useful application of the 'Automatic' option is when you are importing records via a CSV, or similar, file. Such files frequently come from other database systems and are very likely to have their records in primary key order. The data import will become slower and slower as the number of records increases and, where thousands of records are involved, can literally take hours. Setting the system up for automatic index balancing, say every 50 or 100 records, can markedly reduce this time. Printing the Tree Structure =========================== This is something you do either out of idle curiosity or to see whether an index tree needs balancing. 'Print index' provides two choices:- (1) to print the actual keys, positioned according to the level which they occupy in the tree (2) to print only the number of nodes on each level. The data printed applies to the current subfile of the current key and is output to a screen window from which it may be saved in the same way as any other list (see 'Printing' - Output destination). If the tree is very deep and straggly it may not be possible to show all of it. The maximum number of levels which can be shown is in fact 40, including the root. Using option (1) above causes keys which cannot be displayed in their correct positions to appear down the left hand side of the window with a note indicating the level in which they occur. If you choose (1), a double click with SELECT on any of the keys will display the relevant record with the caret placed in the key field. Duplicate primary keys ====================== Wherever possible a primary key should be chosen so as to be unique. Where duplication of the primary key might occur the designer of the database can decide either to allow or forbid it. (The switch which controls this is hidden from prying eyes in the password-setting window and is thus under 'Manager'-level control. See 'Passwords' for more information.) If duplicate keys are permitted it is sometimes useful to have a list of them. Such a list is created by 'Find duplicates' and may be saved as a text file. Closely related is the final entry on the 'Utilities' sub-menu; 'Warn of duplicates'. If ticked this causes a warning message to be displayed each time a primary key is about to be duplicated. Clicking on this menu choice toggles the ticked state.
00000000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000010 20 20 20 20 20 20 20 20 50 6f 77 65 72 62 61 73 | Powerbas| 00000020 65 20 55 74 69 6c 69 74 69 65 73 0a 20 20 20 20 |e Utilities. | 00000030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000040 20 20 20 20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d | ============| 00000050 3d 3d 3d 3d 3d 3d 3d 0a 0a 55 6e 64 65 72 20 74 |=======..Under t| 00000060 68 69 73 20 68 65 61 64 69 6e 67 20 77 65 20 77 |his heading we w| 00000070 69 6c 6c 20 67 72 6f 75 70 20 61 20 6e 75 6d 62 |ill group a numb| 00000080 65 72 20 6f 66 20 74 68 69 6e 67 73 20 77 68 69 |er of things whi| 00000090 63 68 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 66 |ch can be done f| 000000a0 72 6f 6d 0a 74 68 65 20 27 55 74 69 6c 74 69 74 |rom.the 'Utiltit| 000000b0 65 73 27 20 73 75 62 2d 6d 65 6e 75 20 6f 66 20 |es' sub-menu of | 000000c0 74 68 65 20 69 63 6f 6e 2d 62 61 72 20 6d 65 6e |the icon-bar men| 000000d0 75 20 74 6f 20 65 78 61 6d 69 6e 65 20 61 6e 64 |u to examine and| 000000e0 20 61 6c 74 65 72 20 74 68 65 0a 73 74 72 75 63 | alter the.struc| 000000f0 74 75 72 65 20 6f 66 20 61 6e 20 65 78 69 73 74 |ture of an exist| 00000100 69 6e 67 20 64 61 74 61 62 61 73 65 2e 20 4e 6f |ing database. No| 00000110 74 65 20 74 68 61 74 2c 20 69 66 20 70 61 73 73 |te that, if pass| 00000120 77 6f 72 64 73 20 68 61 76 65 20 62 65 65 6e 20 |words have been | 00000130 73 65 74 2c 0a 79 6f 75 20 6e 65 65 64 20 74 6f |set,.you need to| 00000140 20 6f 70 65 6e 20 74 68 65 20 64 61 74 61 62 61 | open the databa| 00000150 73 65 20 77 69 74 68 20 74 68 65 20 27 4d 61 6e |se with the 'Man| 00000160 61 67 65 72 27 2d 6c 65 76 65 6c 20 70 61 73 73 |ager'-level pass| 00000170 77 6f 72 64 20 74 6f 20 6f 62 74 61 69 6e 0a 61 |word to obtain.a| 00000180 63 63 65 73 73 20 74 6f 20 74 68 69 73 20 73 75 |ccess to this su| 00000190 62 2d 6d 65 6e 75 2e 0a 0a 43 68 61 6e 67 69 6e |b-menu...Changin| 000001a0 67 20 74 68 65 20 50 72 69 6d 61 72 79 20 4b 65 |g the Primary Ke| 000001b0 79 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |y.==============| 000001c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 54 68 65 20 70 |==========.The p| 000001d0 72 69 6d 61 72 79 20 6b 65 79 20 6f 66 20 61 20 |rimary key of a | 000001e0 64 61 74 61 62 61 73 65 20 69 73 20 64 65 74 65 |database is dete| 000001f0 72 6d 69 6e 65 64 20 77 68 65 6e 20 69 74 20 69 |rmined when it i| 00000200 73 20 63 72 65 61 74 65 64 2c 20 62 75 74 20 69 |s created, but i| 00000210 74 20 69 73 0a 6e 6f 74 20 66 69 78 65 64 20 66 |t is.not fixed f| 00000220 6f 72 20 61 6c 6c 20 74 69 6d 65 2e 20 54 68 65 |or all time. The| 00000230 20 6f 70 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 | option provided| 00000240 20 66 72 6f 6d 20 74 68 65 20 27 55 74 69 6c 69 | from the 'Utili| 00000250 74 69 65 73 27 20 73 75 62 6d 65 6e 75 0a 64 69 |ties' submenu.di| 00000260 73 70 6c 61 79 73 20 74 68 65 20 73 61 6d 65 20 |splays the same | 00000270 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 61 73 20 |dialogue box as | 00000280 69 73 20 75 73 65 64 20 66 6f 72 20 63 72 65 61 |is used for crea| 00000290 74 69 6e 67 20 74 68 65 20 70 72 69 6d 61 72 79 |ting the primary| 000002a0 20 6b 65 79 20 69 6e 0a 74 68 65 20 66 69 72 73 | key in.the firs| 000002b0 74 20 70 6c 61 63 65 2c 20 62 75 74 20 77 69 74 |t place, but wit| 000002c0 68 20 74 68 65 20 61 64 64 69 74 69 6f 6e 20 6f |h the addition o| 000002d0 66 20 74 77 6f 20 72 61 64 69 6f 20 62 75 74 74 |f two radio butt| 000002e0 6f 6e 73 2c 20 77 68 6f 73 65 20 66 75 6e 63 74 |ons, whose funct| 000002f0 69 6f 6e 0a 69 73 20 64 65 73 63 72 69 62 65 64 |ion.is described| 00000300 20 62 65 6c 6f 77 2e 20 54 68 65 20 70 72 65 73 | below. The pres| 00000310 65 6e 74 20 6b 65 79 20 73 74 72 75 63 74 75 72 |ent key structur| 00000320 65 20 69 73 20 73 68 6f 77 6e 2e 20 53 69 6d 70 |e is shown. Simp| 00000330 6c 79 20 61 6c 74 65 72 20 69 74 20 74 6f 0a 77 |ly alter it to.w| 00000340 68 61 74 20 79 6f 75 20 72 65 71 75 69 72 65 20 |hat you require | 00000350 61 6e 64 20 63 6c 69 63 6b 20 6f 6e 20 27 4f 4b |and click on 'OK| 00000360 27 20 6f 72 20 74 79 70 65 20 52 45 54 55 52 4e |' or type RETURN| 00000370 2e 20 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 69 |. Confirmation i| 00000380 73 0a 72 65 71 75 65 73 74 65 64 2e 0a 0a 4e 6f |s.requested...No| 00000390 72 6d 61 6c 6c 79 20 74 68 65 20 66 69 72 73 74 |rmally the first| 000003a0 20 6f 66 20 74 68 65 20 74 77 6f 20 72 61 64 69 | of the two radi| 000003b0 6f 20 62 75 74 74 6f 6e 73 20 69 73 20 73 65 6c |o buttons is sel| 000003c0 65 63 74 65 64 2c 20 63 61 75 73 69 6e 67 20 74 |ected, causing t| 000003d0 68 65 20 72 65 63 6f 72 64 73 0a 74 6f 20 61 70 |he records.to ap| 000003e0 70 65 61 72 20 69 6e 20 74 68 65 20 73 61 6d 65 |pear in the same| 000003f0 20 73 75 62 66 69 6c 65 73 20 61 73 20 74 68 65 | subfiles as the| 00000400 79 20 64 69 64 20 62 65 66 6f 72 65 2e 20 49 6e |y did before. In| 00000410 20 74 68 69 73 20 63 61 73 65 2c 20 61 6e 79 0a | this case, any.| 00000420 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 64 69 63 |additional indic| 00000430 65 73 20 77 69 6c 6c 20 73 74 69 6c 6c 20 62 65 |es will still be| 00000440 20 76 61 6c 69 64 2e 0a 0a 49 66 20 79 6f 75 20 | valid...If you | 00000450 64 65 73 65 6c 65 63 74 20 74 68 69 73 20 72 61 |deselect this ra| 00000460 64 69 6f 20 62 75 74 74 6f 6e 20 77 69 74 68 20 |dio button with | 00000470 41 44 4a 55 53 54 20 28 69 2e 65 2e 20 68 61 76 |ADJUST (i.e. hav| 00000480 65 20 6e 65 69 74 68 65 72 20 62 75 74 74 6f 6e |e neither button| 00000490 0a 73 65 6c 65 63 74 65 64 29 20 74 68 65 6e 20 |.selected) then | 000004a0 61 6c 6c 20 74 68 65 20 72 65 63 6f 72 64 73 20 |all the records | 000004b0 77 69 6c 6c 20 62 65 20 70 6c 61 63 65 64 20 69 |will be placed i| 000004c0 6e 20 74 68 65 20 63 75 72 72 65 6e 74 6c 79 20 |n the currently | 000004d0 73 65 6c 65 63 74 65 64 0a 73 75 62 66 69 6c 65 |selected.subfile| 000004e0 2e 20 0a 0a 53 65 6c 65 63 74 69 6e 67 20 74 68 |. ..Selecting th| 000004f0 65 20 73 65 63 6f 6e 64 20 72 61 64 69 6f 20 62 |e second radio b| 00000500 75 74 74 6f 6e 20 61 6c 73 6f 20 70 6c 61 63 65 |utton also place| 00000510 73 20 74 68 65 20 72 65 63 6f 72 64 73 20 69 6e |s the records in| 00000520 20 74 68 65 20 63 75 72 72 65 6e 74 20 0a 73 75 | the current .su| 00000530 62 66 69 6c 65 2c 20 62 75 74 20 68 61 73 20 74 |bfile, but has t| 00000540 68 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 65 66 |he additional ef| 00000550 66 65 63 74 20 6f 66 20 72 65 63 6f 76 65 72 69 |fect of recoveri| 00000560 6e 67 20 61 6e 79 20 22 64 65 6c 65 74 65 64 22 |ng any "deleted"| 00000570 20 72 65 63 6f 72 64 73 2c 0a 69 2e 65 2e 20 72 | records,.i.e. r| 00000580 65 63 6f 72 64 73 20 77 68 69 63 68 20 61 72 65 |ecords which are| 00000590 20 73 74 69 6c 6c 20 6c 75 72 6b 69 6e 67 20 69 | still lurking i| 000005a0 6e 20 74 68 65 20 27 44 61 74 61 62 61 73 65 27 |n the 'Database'| 000005b0 20 66 69 6c 65 20 62 75 74 20 61 72 65 6e 27 74 | file but aren't| 000005c0 20 69 6e 0a 74 68 65 20 70 72 69 6d 61 72 79 20 | in.the primary | 000005d0 6b 65 79 20 69 6e 64 65 78 2e 20 49 6e 20 66 61 |key index. In fa| 000005e0 63 74 20 74 68 69 73 20 6d 6f 64 65 20 6f 66 20 |ct this mode of | 000005f0 6f 70 65 72 61 74 69 6f 6e 20 69 67 6e 6f 72 65 |operation ignore| 00000600 73 20 74 68 65 20 65 78 69 73 74 69 6e 67 0a 70 |s the existing.p| 00000610 72 69 6d 61 72 79 20 6b 65 79 20 61 6c 74 6f 67 |rimary key altog| 00000620 65 74 68 65 72 2e 20 54 68 65 72 65 20 69 73 20 |ether. There is | 00000630 6f 6e 65 20 76 65 72 79 20 69 6d 70 6f 72 74 61 |one very importa| 00000640 6e 74 20 63 69 72 63 75 6d 73 74 61 6e 63 65 20 |nt circumstance | 00000650 75 6e 64 65 72 20 77 68 69 63 68 0a 79 6f 75 20 |under which.you | 00000660 77 6f 75 6c 64 20 6e 65 65 64 20 74 6f 20 64 6f |would need to do| 00000670 20 74 68 69 73 3a 20 77 68 65 6e 20 74 68 65 20 | this: when the | 00000680 70 72 69 6d 61 72 79 20 6b 65 79 20 69 6e 64 65 |primary key inde| 00000690 78 20 69 73 20 6c 6f 73 74 20 6f 72 20 63 6f 72 |x is lost or cor| 000006a0 72 75 70 74 65 64 2e 0a 0a 4e 4f 54 45 3a 20 59 |rupted...NOTE: Y| 000006b0 6f 75 20 6d 69 67 68 74 20 68 61 76 65 20 61 20 |ou might have a | 000006c0 27 44 61 74 61 62 61 73 65 27 20 66 69 6c 65 20 |'Database' file | 000006d0 62 75 74 20 6e 6f 20 27 50 72 69 6d 61 72 79 4b |but no 'PrimaryK| 000006e0 65 79 27 20 66 69 6c 65 20 61 74 20 61 6c 6c 2e |ey' file at all.| 000006f0 20 54 68 69 73 20 0a 63 6f 75 6c 64 20 68 61 70 | This .could hap| 00000700 70 65 6e 20 69 66 20 79 6f 75 20 68 61 76 65 2c |pen if you have,| 00000710 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 63 72 | for example, cr| 00000720 65 61 74 65 64 20 61 20 73 75 69 74 61 62 6c 65 |eated a suitable| 00000730 20 74 65 78 74 20 66 69 6c 65 20 61 6e 64 20 74 | text file and t| 00000740 68 65 6e 0a 73 65 74 20 69 74 73 20 74 79 70 65 |hen.set its type| 00000750 20 74 6f 20 27 44 61 74 61 62 61 73 65 27 2e 20 | to 'Database'. | 00000760 20 54 6f 20 62 75 69 6c 64 20 61 20 70 72 69 6d | To build a prim| 00000770 61 72 79 20 6b 65 79 20 66 6f 72 20 73 75 63 68 |ary key for such| 00000780 20 61 20 66 69 6c 65 20 74 68 65 20 6f 6e 6c 79 | a file the only| 00000790 0a 76 61 6c 69 64 20 73 65 74 74 69 6e 67 20 66 |.valid setting f| 000007a0 6f 72 20 74 68 65 20 72 61 64 69 6f 20 62 75 74 |or the radio but| 000007b0 74 6f 6e 73 20 69 73 20 74 68 65 20 6f 6e 65 20 |tons is the one | 000007c0 6a 75 73 74 20 64 65 73 63 72 69 62 65 64 2c 20 |just described, | 000007d0 69 2e 65 2e 20 73 65 63 6f 6e 64 0a 62 75 74 74 |i.e. second.butt| 000007e0 6f 6e 20 73 65 6c 65 63 74 65 64 2e 20 20 54 6f |on selected. To| 000007f0 20 65 6e 66 6f 72 63 65 20 74 68 69 73 20 6d 6f | enforce this mo| 00000800 64 65 20 62 6f 74 68 20 72 61 64 69 6f 20 62 75 |de both radio bu| 00000810 74 74 6f 6e 73 20 61 72 65 20 73 68 61 64 65 64 |ttons are shaded| 00000820 2e 0a 0a 41 64 6a 75 73 74 69 6e 67 20 74 68 65 |...Adjusting the| 00000830 20 72 65 63 6f 72 64 20 66 6f 72 6d 61 74 0a 3d | record format.=| 00000840 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00000850 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 4d 69 6e 6f 72 |==========.Minor| 00000860 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 | changes to the | 00000870 73 63 72 65 65 6e 20 6c 61 79 6f 75 74 20 63 61 |screen layout ca| 00000880 6e 20 62 65 20 6d 61 64 65 20 77 69 74 68 6f 75 |n be made withou| 00000890 74 20 68 61 76 69 6e 67 20 74 6f 20 72 65 62 75 |t having to rebu| 000008a0 69 6c 64 20 74 68 65 0a 64 61 74 61 62 61 73 65 |ild the.database| 000008b0 2e 20 43 68 6f 6f 73 65 20 74 68 65 20 27 41 64 |. Choose the 'Ad| 000008c0 6a 75 73 74 20 66 6f 72 6d 61 74 27 20 6d 65 6e |just format' men| 000008d0 75 20 6f 70 74 69 6f 6e 20 61 6e 64 20 79 6f 75 |u option and you| 000008e0 20 77 69 6c 6c 20 62 65 20 70 72 65 73 65 6e 74 | will be present| 000008f0 65 64 0a 77 69 74 68 20 74 68 65 20 62 6c 61 6e |ed.with the blan| 00000900 6b 20 72 65 63 6f 72 64 20 73 63 72 65 65 6e 2e |k record screen.| 00000910 20 43 6c 69 63 6b 69 6e 67 20 4d 45 4e 55 20 6f | Clicking MENU o| 00000920 76 65 72 20 74 68 69 73 20 20 62 72 69 6e 67 73 |ver this brings| 00000930 20 75 70 20 74 68 65 20 73 61 6d 65 0a 6d 65 6e | up the same.men| 00000940 75 20 61 73 20 79 6f 75 20 75 73 65 64 20 74 6f |u as you used to| 00000950 20 63 72 65 61 74 65 20 74 68 65 20 73 63 72 65 | create the scre| 00000960 65 6e 20 6f 72 69 67 69 6e 61 6c 6c 79 2c 20 62 |en originally, b| 00000970 75 74 20 74 68 65 20 66 69 65 6c 64 2d 64 65 66 |ut the field-def| 00000980 69 6e 69 74 69 6f 6e 0a 64 69 61 6c 6f 67 75 65 |inition.dialogue| 00000990 20 62 6f 78 20 68 61 73 20 73 6f 6d 65 20 6f 70 | box has some op| 000009a0 74 69 6f 6e 73 20 73 68 61 64 65 64 2e 20 54 68 |tions shaded. Th| 000009b0 75 73 2c 20 79 6f 75 20 63 61 6e 27 74 20 64 65 |us, you can't de| 000009c0 6c 65 74 65 20 66 69 65 6c 64 73 2c 20 61 64 64 |lete fields, add| 000009d0 20 6e 65 77 0a 6f 6e 65 73 20 6f 72 20 61 6c 74 | new.ones or alt| 000009e0 65 72 20 74 68 65 20 64 61 74 61 20 6c 65 6e 67 |er the data leng| 000009f0 74 68 73 2c 20 62 75 74 20 79 6f 75 20 63 61 6e |ths, but you can| 00000a00 20 72 65 2d 70 6f 73 69 74 69 6f 6e 20 66 69 65 | re-position fie| 00000a10 6c 64 73 2c 20 63 68 61 6e 67 65 0a 64 65 73 63 |lds, change.desc| 00000a20 72 69 70 74 6f 72 73 20 61 6e 64 20 74 61 67 73 |riptors and tags| 00000a30 2c 20 61 6e 64 20 61 6c 74 65 72 20 74 68 65 20 |, and alter the | 00000a40 76 69 73 69 62 6c 65 20 6c 65 6e 67 74 68 73 2e |visible lengths.| 00000a50 20 57 68 65 6e 20 79 6f 75 20 68 61 76 65 20 66 | When you have f| 00000a60 69 6e 69 73 68 65 64 0a 74 68 65 20 63 68 61 6e |inished.the chan| 00000a70 67 65 73 2c 20 63 6c 69 63 6b 20 6f 6e 20 74 68 |ges, click on th| 00000a80 65 20 6c 61 73 74 20 6f 70 74 69 6f 6e 20 6f 6e |e last option on| 00000a90 20 74 68 65 20 6d 65 6e 75 20 2d 20 20 27 51 75 | the menu - 'Qu| 00000aa0 69 74 20 64 65 73 69 67 6e 27 2e 0a 0a 41 6e 6f |it design'...Ano| 00000ab0 74 68 65 72 20 73 69 74 75 61 74 69 6f 6e 20 69 |ther situation i| 00000ac0 6e 20 77 68 69 63 68 20 79 6f 75 72 20 63 6f 6e |n which your con| 00000ad0 74 72 6f 6c 20 6f 76 65 72 20 74 68 65 20 73 63 |trol over the sc| 00000ae0 72 65 65 6e 20 64 65 73 69 67 6e 20 77 69 6c 6c |reen design will| 00000af0 20 62 65 0a 6c 69 6d 69 74 65 64 20 61 73 20 61 | be.limited as a| 00000b00 62 6f 76 65 20 6f 63 63 75 72 73 20 77 68 65 6e |bove occurs when| 00000b10 20 79 6f 75 20 68 61 76 65 20 61 20 27 46 6f 72 | you have a 'For| 00000b20 6d 27 20 66 69 6c 65 20 61 6e 64 20 61 20 27 44 |m' file and a 'D| 00000b30 61 74 61 62 61 73 65 27 20 66 69 6c 65 0a 62 75 |atabase' file.bu| 00000b40 74 20 6e 6f 20 27 50 72 69 6d 61 72 79 4b 65 79 |t no 'PrimaryKey| 00000b50 27 20 66 69 6c 65 2e 20 53 69 6e 63 65 20 74 68 |' file. Since th| 00000b60 69 73 20 69 73 20 6e 6f 74 20 79 65 74 20 61 20 |is is not yet a | 00000b70 66 75 6e 63 74 69 6f 6e 69 6e 67 20 64 61 74 61 |functioning data| 00000b80 62 61 73 65 20 79 6f 75 0a 77 69 6c 6c 20 62 65 |base you.will be| 00000b90 20 70 6c 61 63 65 64 20 69 6e 20 22 72 65 73 74 | placed in "rest| 00000ba0 72 69 63 74 65 64 20 64 65 73 69 67 6e 22 20 6d |ricted design" m| 00000bb0 6f 64 65 2e 20 54 68 65 20 27 51 75 69 74 20 64 |ode. The 'Quit d| 00000bc0 65 73 69 67 6e 27 20 6f 70 74 69 6f 6e 20 69 73 |esign' option is| 00000bd0 6e 27 74 0a 75 73 65 64 20 74 6f 20 65 6e 64 20 |n't.used to end | 00000be0 74 68 65 20 61 64 6a 75 73 74 6d 65 6e 74 73 20 |the adjustments | 00000bf0 69 6e 20 74 68 69 73 20 63 61 73 65 2e 20 55 73 |in this case. Us| 00000c00 65 20 27 53 61 76 65 20 66 6f 72 6d 20 66 69 6c |e 'Save form fil| 00000c10 65 27 20 69 6e 73 74 65 61 64 2e 20 0a 0a 43 68 |e' instead. ..Ch| 00000c20 61 6e 67 69 6e 67 20 74 68 65 20 72 65 63 6f 72 |anging the recor| 00000c30 64 20 66 6f 72 6d 61 74 0a 3d 3d 3d 3d 3d 3d 3d |d format.=======| 00000c40 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00000c50 3d 3d 3d 0a 54 68 69 73 20 69 73 20 61 20 6d 6f |===.This is a mo| 00000c60 72 65 20 64 72 61 73 74 69 63 20 63 68 61 6e 67 |re drastic chang| 00000c70 65 20 74 6f 20 6d 61 6b 65 2c 20 62 75 74 20 6f |e to make, but o| 00000c80 6e 65 20 63 61 6e 27 74 20 66 6f 72 65 73 65 65 |ne can't foresee| 00000c90 20 61 6c 6c 20 66 75 74 75 72 65 0a 6e 65 65 64 | all future.need| 00000ca0 73 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 68 61 |s and you may ha| 00000cb0 76 65 20 74 6f 20 69 6e 74 72 6f 64 75 63 65 20 |ve to introduce | 00000cc0 61 20 6e 65 77 20 66 69 65 6c 64 20 69 6e 74 6f |a new field into| 00000cd0 20 74 68 65 20 72 65 63 6f 72 64 20 6f 72 20 6c | the record or l| 00000ce0 65 6e 67 74 68 65 6e 0a 61 6e 20 65 78 69 73 74 |engthen.an exist| 00000cf0 69 6e 67 20 6f 6e 65 2e 20 54 68 69 73 20 69 6e |ing one. This in| 00000d00 76 6f 6c 76 65 73 20 72 65 62 75 69 6c 64 69 6e |volves rebuildin| 00000d10 67 20 74 68 65 20 77 68 6f 6c 65 20 64 61 74 61 |g the whole data| 00000d20 62 61 73 65 2e 20 59 6f 75 20 77 69 6c 6c 20 6e |base. You will n| 00000d30 65 65 64 0a 74 6f 20 63 72 65 61 74 65 20 61 20 |eed.to create a | 00000d40 6e 65 77 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 |new application | 00000d50 73 68 65 6c 6c 20 77 69 74 68 20 74 68 65 20 6e |shell with the n| 00000d60 65 77 20 27 46 6f 72 6d 27 20 66 69 6c 65 20 69 |ew 'Form' file i| 00000d70 6e 73 69 64 65 20 69 74 2e 20 54 68 65 0a 62 65 |nside it. The.be| 00000d80 73 74 20 77 61 79 20 74 6f 20 64 6f 20 74 68 69 |st way to do thi| 00000d90 73 20 69 73 20 70 72 6f 62 61 62 6c 79 20 74 6f |s is probably to| 00000da0 20 6f 70 65 6e 20 74 68 65 20 6e 65 77 20 64 61 | open the new da| 00000db0 74 61 62 61 73 65 20 64 69 72 65 63 74 6f 72 79 |tabase directory| 00000dc0 2c 20 63 6f 70 79 20 74 68 65 0a 6f 6c 64 20 27 |, copy the.old '| 00000dd0 46 6f 72 6d 27 20 66 69 6c 65 20 69 6e 74 6f 20 |Form' file into | 00000de0 69 74 2c 20 74 68 65 6e 20 6f 70 65 6e 20 74 68 |it, then open th| 00000df0 65 20 6e 65 77 20 22 64 61 74 61 62 61 73 65 22 |e new "database"| 00000e00 2e 20 53 69 6e 63 65 20 6e 6f 20 27 50 72 69 6d |. Since no 'Prim| 00000e10 61 72 79 4b 65 79 27 0a 6f 72 20 27 44 61 74 61 |aryKey'.or 'Data| 00000e20 62 61 73 65 27 20 66 69 6c 65 20 79 65 74 20 65 |base' file yet e| 00000e30 78 69 73 74 73 20 79 6f 75 20 77 69 6c 6c 20 62 |xists you will b| 00000e40 65 20 61 62 6c 65 20 74 6f 20 6d 6f 64 69 66 79 |e able to modify| 00000e50 20 74 68 65 20 73 63 72 65 65 6e 20 64 65 73 69 | the screen desi| 00000e60 67 6e 0a 61 73 20 79 6f 75 20 77 69 73 68 2e 20 |gn.as you wish. | 00000e70 59 6f 75 20 73 68 6f 75 6c 64 20 6e 6f 74 2c 20 |You should not, | 00000e80 68 6f 77 65 76 65 72 2c 20 67 6f 20 6f 6e 20 74 |however, go on t| 00000e90 6f 20 63 6f 6d 70 6c 65 74 65 20 74 68 65 20 65 |o complete the e| 00000ea0 6d 70 74 79 20 64 61 74 61 62 61 73 65 0a 28 69 |mpty database.(i| 00000eb0 2e 65 2e 20 64 6f 6e 27 74 20 63 68 6f 6f 73 65 |.e. don't choose| 00000ec0 20 27 44 65 66 61 75 6c 74 20 64 61 74 61 62 61 | 'Default databa| 00000ed0 73 65 27 20 6f 72 20 63 6c 69 63 6b 20 6f 6e 20 |se' or click on | 00000ee0 74 68 65 20 27 4f 4b 27 20 62 75 74 74 6f 6e 20 |the 'OK' button | 00000ef0 69 6e 20 74 68 65 0a 70 72 69 6d 61 72 79 20 6b |in the.primary k| 00000f00 65 79 20 64 69 61 6c 6f 67 75 65 20 62 6f 78 29 |ey dialogue box)| 00000f10 20 2d 20 73 69 6d 70 6c 79 20 73 61 76 65 20 74 | - simply save t| 00000f20 68 65 20 27 46 6f 72 6d 27 20 66 69 6c 65 20 75 |he 'Form' file u| 00000f30 73 69 6e 67 20 74 68 65 20 6d 65 6e 75 0a 63 68 |sing the menu.ch| 00000f40 6f 69 63 65 20 70 72 6f 76 69 64 65 64 2e 20 0a |oice provided. .| 00000f50 0a 57 69 74 68 20 79 6f 75 72 20 6f 6c 64 20 64 |.With your old d| 00000f60 61 74 61 62 61 73 65 20 6f 70 65 6e 2c 20 63 68 |atabase open, ch| 00000f70 6f 6f 73 65 20 74 68 65 20 27 43 68 61 6e 67 65 |oose the 'Change| 00000f80 20 66 6f 72 6d 61 74 27 20 6f 70 74 69 6f 6e 20 | format' option | 00000f90 66 72 6f 6d 20 74 68 65 0a 69 63 6f 6e 2d 62 61 |from the.icon-ba| 00000fa0 72 20 6d 65 6e 75 20 61 6e 64 20 64 72 61 67 20 |r menu and drag | 00000fb0 74 68 65 20 6e 65 77 20 64 61 74 61 62 61 73 65 |the new database| 00000fc0 20 74 6f 20 74 68 65 20 6c 61 72 67 65 20 61 72 | to the large ar| 00000fd0 72 6f 77 20 69 63 6f 6e 20 69 6e 20 74 68 65 0a |row icon in the.| 00000fe0 64 69 73 70 6c 61 79 65 64 20 20 77 69 6e 64 6f |displayed windo| 00000ff0 77 2e 20 54 68 65 20 64 61 74 61 62 61 73 65 20 |w. The database | 00001000 77 69 6c 6c 20 74 68 65 6e 20 62 65 20 72 65 62 |will then be reb| 00001010 75 69 6c 74 2e 20 4d 61 6b 65 20 73 75 72 65 20 |uilt. Make sure | 00001020 79 6f 75 20 68 61 76 65 0a 70 6c 65 6e 74 79 20 |you have.plenty | 00001030 6f 66 20 64 69 73 63 20 73 70 61 63 65 20 61 76 |of disc space av| 00001040 61 69 6c 61 62 6c 65 20 62 65 66 6f 72 65 20 64 |ailable before d| 00001050 6f 69 6e 67 20 74 68 69 73 20 73 69 6e 63 65 20 |oing this since | 00001060 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 64 61 74 |the original dat| 00001070 61 62 61 73 65 0a 72 65 6d 61 69 6e 73 20 69 6e |abase.remains in| 00001080 74 61 63 74 20 73 6f 20 79 6f 75 20 6e 65 65 64 |tact so you need| 00001090 20 72 6f 6f 6d 20 66 6f 72 20 69 74 20 61 6e 64 | room for it and| 000010a0 20 74 68 65 20 6e 65 77 20 6f 6e 65 2e 0a 0a 44 | the new one...D| 000010b0 61 74 61 20 66 72 6f 6d 20 61 20 66 69 65 6c 64 |ata from a field| 000010c0 20 69 6e 20 74 68 65 20 6f 6c 64 20 64 61 74 61 | in the old data| 000010d0 62 61 73 65 20 69 73 20 63 6f 70 69 65 64 20 74 |base is copied t| 000010e0 6f 20 61 20 66 69 65 6c 64 20 69 6e 20 74 68 65 |o a field in the| 000010f0 20 6e 65 77 20 6f 6e 65 0a 77 68 69 63 68 20 68 | new one.which h| 00001100 61 73 20 74 68 65 20 73 61 6d 65 20 74 61 67 2e |as the same tag.| 00001110 20 54 68 65 20 6e 65 77 20 46 6f 72 6d 20 66 69 | The new Form fi| 00001120 6c 65 20 6d 75 73 74 20 74 68 65 72 65 66 6f 72 |le must therefor| 00001130 65 20 72 65 74 61 69 6e 20 74 68 65 20 73 61 6d |e retain the sam| 00001140 65 20 0a 74 61 67 73 20 61 73 20 74 68 65 20 6f |e .tags as the o| 00001150 6c 64 20 66 6f 72 20 64 61 74 61 20 77 68 69 63 |ld for data whic| 00001160 68 20 69 73 20 74 6f 20 62 65 20 63 6f 6d 6d 6f |h is to be commo| 00001170 6e 20 74 6f 20 62 6f 74 68 2e 20 49 66 20 61 20 |n to both. If a | 00001180 74 61 67 20 65 78 69 73 74 73 20 69 6e 0a 74 68 |tag exists in.th| 00001190 65 20 6f 6c 64 20 46 6f 72 6d 20 66 69 6c 65 20 |e old Form file | 000011a0 62 75 74 20 6e 6f 74 20 69 6e 20 74 68 65 20 6e |but not in the n| 000011b0 65 77 20 50 6f 77 65 72 62 61 73 65 20 77 69 6c |ew Powerbase wil| 000011c0 6c 20 61 73 73 75 6d 65 20 74 68 61 74 20 74 68 |l assume that th| 000011d0 65 20 72 65 6c 65 76 61 6e 74 0a 66 69 65 6c 64 |e relevant.field| 000011e0 20 68 61 73 20 62 65 65 6e 20 64 65 6c 65 74 65 | has been delete| 000011f0 64 20 61 6e 64 20 64 61 74 61 20 70 72 65 73 65 |d and data prese| 00001200 6e 74 20 69 6e 20 74 68 61 74 20 66 69 65 6c 64 |nt in that field| 00001210 20 69 6e 20 74 68 65 20 6f 6c 64 20 64 61 74 61 | in the old data| 00001220 62 61 73 65 0a 77 69 6c 6c 20 6e 6f 74 20 62 65 |base.will not be| 00001230 20 74 72 61 6e 73 66 65 72 72 65 64 2e 20 41 20 | transferred. A | 00001240 74 61 67 20 77 68 69 63 68 20 69 73 20 70 72 65 |tag which is pre| 00001250 73 65 6e 74 20 69 6e 20 74 68 65 20 6e 65 77 20 |sent in the new | 00001260 64 61 74 61 62 61 73 65 20 62 75 74 20 6e 6f 74 |database but not| 00001270 0a 69 6e 20 74 68 65 20 6f 6c 64 20 69 73 20 61 |.in the old is a| 00001280 73 73 75 6d 65 64 20 74 6f 20 62 65 20 61 20 6e |ssumed to be a n| 00001290 65 77 6c 79 2d 69 6e 74 72 6f 64 75 63 65 64 20 |ewly-introduced | 000012a0 66 69 65 6c 64 20 61 6e 64 20 77 69 6c 6c 20 74 |field and will t| 000012b0 68 65 72 65 66 6f 72 65 20 62 65 0a 6c 65 66 74 |herefore be.left| 000012c0 20 62 6c 61 6e 6b 2e 0a 20 0a 4d 65 72 67 69 6e | blank.. .Mergin| 000012d0 67 20 61 20 73 65 63 6f 6e 64 20 64 61 74 61 62 |g a second datab| 000012e0 61 73 65 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |ase.============| 000012f0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 54 77 |=============.Tw| 00001300 6f 20 64 61 74 61 62 61 73 65 73 20 6d 61 79 20 |o databases may | 00001310 62 65 20 6d 65 72 67 65 64 20 70 72 6f 76 69 64 |be merged provid| 00001320 65 64 20 74 68 65 79 20 68 61 76 65 20 74 68 65 |ed they have the| 00001330 20 73 61 6d 65 20 72 65 63 6f 72 64 20 73 74 72 | same record str| 00001340 75 63 74 75 72 65 2e 20 0a 53 65 6c 65 63 74 69 |ucture. .Selecti| 00001350 6e 67 20 27 4d 65 72 67 65 20 64 61 74 61 62 61 |ng 'Merge databa| 00001360 73 65 27 20 64 69 73 70 6c 61 79 73 20 61 20 77 |se' displays a w| 00001370 69 6e 64 6f 77 20 6c 69 6b 65 20 74 68 61 74 20 |indow like that | 00001380 75 73 65 64 20 66 6f 72 20 63 68 61 6e 67 69 6e |used for changin| 00001390 67 20 74 68 65 0a 72 65 63 6f 72 64 20 66 6f 72 |g the.record for| 000013a0 6d 61 74 20 61 6e 64 20 79 6f 75 20 73 69 6d 70 |mat and you simp| 000013b0 6c 79 20 64 72 61 67 20 74 68 65 20 73 65 63 6f |ly drag the seco| 000013c0 6e 64 20 64 61 74 61 62 61 73 65 20 74 6f 20 74 |nd database to t| 000013d0 68 65 20 61 72 72 6f 77 20 69 63 6f 6e 2e 0a 50 |he arrow icon..P| 000013e0 6f 77 65 72 62 61 73 65 20 77 69 6c 6c 20 63 68 |owerbase will ch| 000013f0 65 63 6b 20 74 68 61 74 20 74 68 65 20 74 77 6f |eck that the two| 00001400 20 72 65 63 6f 72 64 20 66 6f 72 6d 61 74 73 20 | record formats | 00001410 61 72 65 20 69 64 65 6e 74 69 63 61 6c 20 61 6e |are identical an| 00001420 64 20 72 65 70 6f 72 74 20 61 6e 0a 65 72 72 6f |d report an.erro| 00001430 72 20 69 66 20 74 68 65 79 20 61 72 65 6e 27 74 |r if they aren't| 00001440 2e 20 49 66 20 74 68 65 20 6f 70 65 6e 20 64 61 |. If the open da| 00001450 74 61 62 61 73 65 20 68 61 73 20 69 6e 73 75 66 |tabase has insuf| 00001460 66 69 63 69 65 6e 74 20 66 72 65 65 20 73 70 61 |ficient free spa| 00001470 63 65 20 74 6f 0a 68 6f 6c 64 20 74 68 65 20 6d |ce to.hold the m| 00001480 65 72 67 65 64 20 72 65 63 6f 72 64 73 20 69 74 |erged records it| 00001490 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c | is automaticall| 000014a0 79 20 65 78 74 65 6e 64 65 64 2e 0a 0a 54 77 6f |y extended...Two| 000014b0 20 72 61 64 69 6f 20 62 75 74 74 6f 6e 73 20 61 | radio buttons a| 000014c0 72 65 20 61 6c 73 6f 20 70 72 65 73 65 6e 74 2c |re also present,| 000014d0 20 61 73 20 69 6e 20 74 68 65 20 64 69 61 6c 6f | as in the dialo| 000014e0 67 75 65 20 62 6f 78 20 66 6f 72 20 72 65 62 75 |gue box for rebu| 000014f0 69 6c 64 69 6e 67 0a 74 68 65 20 70 72 69 6d 61 |ilding.the prima| 00001500 72 79 20 6b 65 79 2c 20 61 6e 64 20 74 68 65 69 |ry key, and thei| 00001510 72 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 |r functions are | 00001520 65 73 73 65 6e 74 69 61 6c 6c 79 20 74 68 65 20 |essentially the | 00001530 73 61 6d 65 2e 20 54 68 75 73 2c 20 68 61 76 69 |same. Thus, havi| 00001540 6e 67 0a 74 68 65 20 66 69 72 73 74 20 73 65 6c |ng.the first sel| 00001550 65 63 74 65 64 20 77 69 6c 6c 20 6d 65 72 67 65 |ected will merge| 00001560 20 72 65 63 6f 72 64 73 20 69 6e 74 6f 20 74 68 | records into th| 00001570 65 20 73 61 6d 65 20 73 75 62 66 69 6c 65 73 20 |e same subfiles | 00001580 61 73 20 74 68 6f 73 65 20 74 68 65 79 0a 6f 63 |as those they.oc| 00001590 63 75 70 69 65 64 20 69 6e 20 74 68 65 20 73 6f |cupied in the so| 000015a0 75 72 63 65 20 64 61 74 61 62 61 73 65 2e 20 48 |urce database. H| 000015b0 61 76 69 6e 67 20 6e 65 69 74 68 65 72 20 73 65 |aving neither se| 000015c0 6c 65 63 74 65 64 20 77 69 6c 6c 20 6d 65 72 67 |lected will merg| 000015d0 65 20 72 65 63 6f 72 64 73 0a 69 6e 74 6f 20 74 |e records.into t| 000015e0 68 65 20 63 75 72 72 65 6e 74 20 73 75 62 66 69 |he current subfi| 000015f0 6c 65 20 6f 66 20 74 68 65 20 6f 70 65 6e 20 64 |le of the open d| 00001600 61 74 61 62 61 73 65 2c 20 72 65 67 61 72 64 6c |atabase, regardl| 00001610 65 73 73 20 6f 66 20 77 68 65 72 65 20 74 68 65 |ess of where the| 00001620 79 20 61 72 65 0a 69 6e 20 74 68 65 20 73 6f 75 |y are.in the sou| 00001630 72 63 65 20 64 61 74 61 62 61 73 65 2e 20 48 61 |rce database. Ha| 00001640 76 69 6e 67 20 74 68 65 20 73 65 63 6f 6e 64 20 |ving the second | 00001650 62 75 74 74 6f 6e 20 73 65 6c 65 63 74 65 64 20 |button selected | 00001660 64 6f 65 73 20 74 68 65 20 73 61 6d 65 0a 74 68 |does the same.th| 00001670 69 6e 67 2c 20 62 75 74 20 61 6c 73 6f 20 69 6d |ing, but also im| 00001680 70 6f 72 74 73 20 72 65 63 6f 72 64 73 20 77 68 |ports records wh| 00001690 69 63 68 20 77 65 72 65 20 22 64 65 6c 65 74 65 |ich were "delete| 000016a0 64 22 20 69 6e 20 74 68 65 20 73 6f 75 72 63 65 |d" in the source| 000016b0 20 64 61 74 61 62 61 73 65 2e 0a 20 0a 43 68 61 | database.. .Cha| 000016c0 6e 67 69 6e 67 20 74 68 65 20 44 61 74 61 62 61 |nging the Databa| 000016d0 73 65 20 4c 65 6e 67 74 68 0a 3d 3d 3d 3d 3d 3d |se Length.======| 000016e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 000016f0 3d 3d 3d 3d 3d 3d 0a 4e 65 65 64 69 6e 67 20 74 |======.Needing t| 00001700 6f 20 6c 65 6e 67 74 68 65 6e 20 61 20 64 61 74 |o lengthen a dat| 00001710 61 62 61 73 65 20 69 73 20 61 20 63 6f 6d 6d 6f |abase is a commo| 00001720 6e 20 73 69 74 75 61 74 69 6f 6e 2e 20 57 61 6e |n situation. Wan| 00001730 74 69 6e 67 20 74 6f 20 73 68 6f 72 74 65 6e 20 |ting to shorten | 00001740 6f 6e 65 0a 69 73 20 6c 65 73 73 20 63 6f 6d 6d |one.is less comm| 00001750 6f 6e 2c 20 62 75 74 20 62 6f 74 68 20 61 72 65 |on, but both are| 00001760 20 65 61 73 69 6c 79 20 61 63 63 6f 6d 70 6c 69 | easily accompli| 00001770 73 68 65 64 2e 20 27 43 68 61 6e 67 65 20 6c 65 |shed. 'Change le| 00001780 6e 67 74 68 27 20 6c 65 61 64 73 20 74 6f 20 61 |ngth' leads to a| 00001790 0a 64 69 61 6c 6f 67 75 65 20 62 6f 78 20 77 69 |.dialogue box wi| 000017a0 74 68 20 74 77 6f 20 77 72 69 74 61 62 6c 65 20 |th two writable | 000017b0 69 63 6f 6e 73 2e 20 54 68 65 20 66 69 72 73 74 |icons. The first| 000017c0 20 6f 66 20 74 68 65 73 65 20 69 73 20 75 73 65 | of these is use| 000017d0 64 20 74 6f 20 73 70 65 63 69 66 79 0a 74 68 65 |d to specify.the| 000017e0 20 6e 65 77 20 64 61 74 61 62 61 73 65 20 6c 65 | new database le| 000017f0 6e 67 74 68 2e 20 59 6f 75 20 77 69 6c 6c 20 62 |ngth. You will b| 00001800 65 20 77 61 72 6e 65 64 20 69 66 2c 20 77 68 65 |e warned if, whe| 00001810 6e 20 73 68 6f 72 74 65 6e 69 6e 67 20 61 20 64 |n shortening a d| 00001820 61 74 61 62 61 73 65 2c 0a 61 6e 79 20 6f 66 20 |atabase,.any of | 00001830 74 68 65 20 72 65 63 6f 72 64 73 20 62 65 69 6e |the records bein| 00001840 67 20 72 65 6d 6f 76 65 64 20 61 72 65 20 6e 6f |g removed are no| 00001850 74 20 62 6c 61 6e 6b 2e 20 54 68 65 79 20 6d 61 |t blank. They ma| 00001860 79 20 62 65 20 64 65 6c 65 74 65 64 20 64 61 74 |y be deleted dat| 00001870 61 2c 0a 62 75 74 20 74 68 65 6e 20 61 67 61 69 |a,.but then agai| 00001880 6e 20 74 68 65 79 20 6d 61 79 20 6e 6f 74 2e 20 |n they may not. | 00001890 59 6f 75 20 68 61 76 65 20 62 65 65 6e 20 77 61 |You have been wa| 000018a0 72 6e 65 64 21 20 54 68 65 20 6f 74 68 65 72 20 |rned! The other | 000018b0 77 72 69 74 61 62 6c 65 20 69 63 6f 6e 0a 64 65 |writable icon.de| 000018c0 74 65 72 6d 69 6e 65 73 20 74 68 65 20 6e 75 6d |termines the num| 000018d0 62 65 72 20 6f 66 20 72 65 63 6f 72 64 73 20 62 |ber of records b| 000018e0 79 20 77 68 69 63 68 20 74 68 65 20 64 61 74 61 |y which the data| 000018f0 62 61 73 65 20 77 69 6c 6c 20 62 65 20 6c 65 6e |base will be len| 00001900 67 74 68 65 6e 65 64 0a 65 61 63 68 20 74 69 6d |gthened.each tim| 00001910 65 20 69 74 20 62 65 63 6f 6d 65 73 20 66 75 6c |e it becomes ful| 00001920 6c 2e 20 49 66 20 74 68 69 73 20 76 61 6c 75 65 |l. If this value| 00001930 20 69 73 20 7a 65 72 6f 20 6e 6f 20 61 75 6f 74 | is zero no auot| 00001940 6d 61 74 69 63 20 6c 65 6e 67 74 68 65 6e 69 6e |matic lengthenin| 00001950 67 0a 6f 63 63 75 72 73 20 2d 20 61 20 77 61 72 |g.occurs - a war| 00001960 6e 69 6e 67 20 6d 65 73 73 61 67 65 20 69 73 20 |ning message is | 00001970 64 69 73 70 6c 61 79 65 64 20 69 6e 73 74 65 61 |displayed instea| 00001980 64 2e 0a 0a 42 61 6c 61 6e 63 69 6e 67 20 69 6e |d...Balancing in| 00001990 64 65 78 20 74 72 65 65 73 0a 3d 3d 3d 3d 3d 3d |dex trees.======| 000019a0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a |===============.| 000019b0 54 68 65 20 74 72 65 65 20 73 74 72 75 63 74 75 |The tree structu| 000019c0 72 65 73 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 |res used to hold| 000019d0 20 69 6e 64 69 63 65 73 20 63 61 6e 20 62 65 63 | indices can bec| 000019e0 6f 6d 65 20 76 65 72 79 20 75 6e 62 61 6c 61 6e |ome very unbalan| 000019f0 63 65 64 2c 20 0a 65 73 70 65 63 69 61 6c 6c 79 |ced, .especially| 00001a00 20 69 66 20 79 6f 75 20 65 6e 74 65 72 20 61 20 | if you enter a | 00001a10 6c 6f 74 20 6f 66 20 72 65 63 6f 72 64 73 20 69 |lot of records i| 00001a20 6e 20 6b 65 79 2d 6f 72 64 65 72 2e 20 27 42 61 |n key-order. 'Ba| 00001a30 6c 61 6e 63 65 20 69 6e 64 65 78 27 20 6c 65 61 |lance index' lea| 00001a40 64 73 0a 74 6f 20 61 20 73 75 62 6d 65 6e 75 20 |ds.to a submenu | 00001a50 77 69 74 68 20 74 77 6f 20 63 68 6f 69 63 65 73 |with two choices| 00001a60 3a 20 27 41 75 74 6f 6d 61 74 69 63 27 20 61 6e |: 'Automatic' an| 00001a70 64 20 27 52 69 67 68 74 20 6e 6f 77 27 2e 20 43 |d 'Right now'. C| 00001a80 68 6f 6f 73 69 6e 67 20 74 68 65 0a 6c 61 74 74 |hoosing the.latt| 00001a90 65 72 20 77 69 6c 6c 20 6f 70 74 69 6d 69 73 65 |er will optimise| 00001aa0 20 61 6c 6c 20 73 75 62 66 69 6c 65 73 20 69 6e | all subfiles in| 00001ab0 20 74 68 65 20 63 75 72 72 65 6e 74 20 69 6e 64 | the current ind| 00001ac0 65 78 2e 20 42 65 66 6f 72 65 20 75 73 69 6e 67 |ex. Before using| 00001ad0 20 69 74 20 79 6f 75 0a 61 72 65 20 72 65 63 6f | it you.are reco| 00001ae0 6d 6d 65 6e 64 65 64 20 74 6f 20 65 78 61 6d 69 |mmended to exami| 00001af0 6e 65 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 |ne the state of | 00001b00 74 68 65 20 69 6e 64 69 63 65 73 20 77 69 74 68 |the indices with| 00001b10 20 74 68 65 20 27 50 72 69 6e 74 20 74 72 65 65 | the 'Print tree| 00001b20 27 0a 6f 70 74 69 6f 6e 2e 0a 0a 43 68 6f 6f 73 |'.option...Choos| 00001b30 69 6e 67 20 74 68 65 20 66 69 72 73 74 20 6d 65 |ing the first me| 00001b40 6e 75 20 69 74 65 6d 20 28 27 41 75 74 6f 6d 61 |nu item ('Automa| 00001b50 74 69 63 27 29 20 65 6e 61 62 6c 65 73 20 61 75 |tic') enables au| 00001b60 74 6f 6d 61 74 69 63 20 62 61 6c 61 6e 63 69 6e |tomatic balancin| 00001b70 67 20 6f 66 0a 61 6c 6c 20 74 68 65 20 69 6e 64 |g of.all the ind| 00001b80 69 63 65 73 20 69 6e 20 75 73 65 20 65 76 65 72 |ices in use ever| 00001b90 79 20 74 69 6d 65 20 74 68 65 20 6e 75 6d 62 65 |y time the numbe| 00001ba0 72 20 6f 66 20 72 65 63 6f 72 64 73 20 65 6e 74 |r of records ent| 00001bb0 65 72 65 64 20 62 65 63 6f 6d 65 73 20 61 0a 6d |ered becomes a.m| 00001bc0 75 6c 74 69 70 6c 65 20 6f 66 20 61 20 73 65 74 |ultiple of a set| 00001bd0 20 76 61 6c 75 65 2e 20 54 68 69 73 20 76 61 6c | value. This val| 00001be0 75 65 20 69 73 20 69 6e 69 74 69 61 6c 6c 79 20 |ue is initially | 00001bf0 73 65 74 20 74 6f 20 32 35 2c 20 69 2e 65 2e 20 |set to 25, i.e. | 00001c00 69 6e 64 69 63 65 73 0a 77 69 6c 6c 20 62 65 20 |indices.will be | 00001c10 62 61 6c 61 6e 63 65 64 20 64 75 72 69 6e 67 20 |balanced during | 00001c20 72 65 63 6f 72 64 20 65 6e 74 72 79 20 61 66 74 |record entry aft| 00001c30 65 72 20 65 61 63 68 20 62 61 74 63 68 20 6f 66 |er each batch of| 00001c40 20 32 35 20 72 65 63 6f 72 64 73 2c 20 61 6e 64 | 25 records, and| 00001c50 0a 6d 61 79 20 62 65 20 61 6c 74 65 72 65 64 20 |.may be altered | 00001c60 76 69 61 20 73 75 62 6d 65 6e 75 20 77 69 74 68 |via submenu with| 00001c70 20 61 20 73 69 6e 67 6c 65 20 77 72 69 74 61 62 | a single writab| 00001c80 6c 65 20 69 74 65 6d 2e 20 57 68 65 6e 20 61 75 |le item. When au| 00001c90 74 6f 6d 61 74 69 63 0a 62 61 6c 61 6e 63 69 6e |tomatic.balancin| 00001ca0 67 20 69 73 20 61 63 74 69 76 65 20 74 68 65 20 |g is active the | 00001cb0 27 41 75 74 6f 6d 61 74 69 63 27 20 6d 65 6e 75 |'Automatic' menu| 00001cc0 20 63 68 6f 69 63 65 20 69 73 20 74 69 63 6b 65 | choice is ticke| 00001cd0 64 2e 20 43 6c 69 63 6b 69 6e 67 20 6f 6e 20 69 |d. Clicking on i| 00001ce0 74 20 61 0a 73 65 63 6f 6e 64 20 74 69 6d 65 20 |t a.second time | 00001cf0 74 75 72 6e 73 20 61 75 74 6f 2d 62 61 6c 61 6e |turns auto-balan| 00001d00 63 69 6e 67 20 6f 66 66 20 61 6e 64 20 72 65 6d |cing off and rem| 00001d10 6f 76 65 73 20 74 68 65 20 74 69 63 6b 2e 20 42 |oves the tick. B| 00001d20 61 6c 61 6e 63 69 6e 67 20 63 61 6e 0a 74 61 6b |alancing can.tak| 00001d30 65 20 73 6f 6d 65 20 74 69 6d 65 2c 20 61 6e 64 |e some time, and| 00001d40 20 74 68 65 20 74 69 6d 65 20 69 6e 63 72 65 61 | the time increa| 00001d50 73 65 73 20 77 69 74 68 20 74 68 65 20 6e 75 6d |ses with the num| 00001d60 62 65 72 20 6f 66 20 72 65 63 6f 72 64 73 20 69 |ber of records i| 00001d70 6e 20 74 68 65 0a 66 69 6c 65 2e 20 49 66 20 79 |n the.file. If y| 00001d80 6f 75 20 61 72 65 20 65 6e 74 65 72 69 6e 67 20 |ou are entering | 00001d90 72 65 63 6f 72 64 73 20 66 72 6f 6d 20 74 68 65 |records from the| 00001da0 20 6b 65 79 62 6f 61 72 64 20 69 6e 20 61 20 66 | keyboard in a f| 00001db0 61 69 72 6c 79 20 68 61 70 68 61 7a 61 72 64 0a |airly haphazard.| 00001dc0 73 65 71 75 65 6e 63 65 20 79 6f 75 20 73 68 6f |sequence you sho| 00001dd0 75 6c 64 20 6c 65 61 76 65 20 74 68 65 20 27 4d |uld leave the 'M| 00001de0 61 6e 75 61 6c 27 20 6f 70 74 69 6f 6e 20 73 65 |anual' option se| 00001df0 74 2e 20 49 66 2c 20 68 6f 77 65 76 65 72 2c 20 |t. If, however, | 00001e00 79 6f 75 20 6e 65 65 64 20 74 6f 0a 65 6e 74 65 |you need to.ente| 00001e10 72 20 61 20 6c 6f 74 20 6f 66 20 72 65 63 6f 72 |r a lot of recor| 00001e20 64 73 20 69 6e 20 70 72 69 6d 61 72 79 20 6b 65 |ds in primary ke| 00001e30 79 20 6f 72 64 65 72 20 69 74 20 6d 69 67 68 74 |y order it might| 00001e40 20 62 65 20 74 6f 20 79 6f 75 72 20 61 64 76 61 | be to your adva| 00001e50 6e 74 61 67 65 20 74 6f 0a 6d 61 6b 65 20 62 61 |ntage to.make ba| 00001e60 6c 61 6e 63 69 6e 67 20 61 75 74 6f 6d 61 74 69 |lancing automati| 00001e70 63 20 77 68 69 6c 73 74 20 74 68 65 20 64 61 74 |c whilst the dat| 00001e80 61 62 61 73 65 20 69 73 20 73 6d 61 6c 6c 2c 20 |abase is small, | 00001e90 72 65 74 75 72 6e 69 6e 67 20 74 6f 20 27 4d 61 |returning to 'Ma| 00001ea0 6e 75 61 6c 27 0a 77 68 65 6e 20 61 20 66 65 77 |nual'.when a few| 00001eb0 20 64 6f 7a 65 6e 20 72 65 63 6f 72 64 73 20 68 | dozen records h| 00001ec0 61 76 65 20 62 65 65 6e 20 65 6e 74 65 72 65 64 |ave been entered| 00001ed0 2e 0a 0a 54 68 65 20 6d 6f 73 74 20 75 73 65 66 |...The most usef| 00001ee0 75 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6f |ul application o| 00001ef0 66 20 74 68 65 20 27 41 75 74 6f 6d 61 74 69 63 |f the 'Automatic| 00001f00 27 20 6f 70 74 69 6f 6e 20 69 73 20 77 68 65 6e |' option is when| 00001f10 20 79 6f 75 20 61 72 65 0a 69 6d 70 6f 72 74 69 | you are.importi| 00001f20 6e 67 20 72 65 63 6f 72 64 73 20 76 69 61 20 61 |ng records via a| 00001f30 20 43 53 56 2c 20 6f 72 20 73 69 6d 69 6c 61 72 | CSV, or similar| 00001f40 2c 20 66 69 6c 65 2e 20 53 75 63 68 20 66 69 6c |, file. Such fil| 00001f50 65 73 20 66 72 65 71 75 65 6e 74 6c 79 20 63 6f |es frequently co| 00001f60 6d 65 0a 66 72 6f 6d 20 6f 74 68 65 72 20 64 61 |me.from other da| 00001f70 74 61 62 61 73 65 20 73 79 73 74 65 6d 73 20 61 |tabase systems a| 00001f80 6e 64 20 61 72 65 20 76 65 72 79 20 6c 69 6b 65 |nd are very like| 00001f90 6c 79 20 74 6f 20 68 61 76 65 20 74 68 65 69 72 |ly to have their| 00001fa0 20 72 65 63 6f 72 64 73 20 69 6e 0a 70 72 69 6d | records in.prim| 00001fb0 61 72 79 20 6b 65 79 20 6f 72 64 65 72 2e 20 54 |ary key order. T| 00001fc0 68 65 20 64 61 74 61 20 69 6d 70 6f 72 74 20 77 |he data import w| 00001fd0 69 6c 6c 20 62 65 63 6f 6d 65 20 73 6c 6f 77 65 |ill become slowe| 00001fe0 72 20 61 6e 64 20 73 6c 6f 77 65 72 20 61 73 20 |r and slower as | 00001ff0 74 68 65 0a 6e 75 6d 62 65 72 20 6f 66 20 72 65 |the.number of re| 00002000 63 6f 72 64 73 20 69 6e 63 72 65 61 73 65 73 20 |cords increases | 00002010 61 6e 64 2c 20 77 68 65 72 65 20 74 68 6f 75 73 |and, where thous| 00002020 61 6e 64 73 20 6f 66 20 72 65 63 6f 72 64 73 20 |ands of records | 00002030 61 72 65 20 69 6e 76 6f 6c 76 65 64 2c 0a 63 61 |are involved,.ca| 00002040 6e 20 6c 69 74 65 72 61 6c 6c 79 20 74 61 6b 65 |n literally take| 00002050 20 68 6f 75 72 73 2e 20 53 65 74 74 69 6e 67 20 | hours. Setting | 00002060 74 68 65 20 73 79 73 74 65 6d 20 75 70 20 66 6f |the system up fo| 00002070 72 20 61 75 74 6f 6d 61 74 69 63 20 69 6e 64 65 |r automatic inde| 00002080 78 0a 62 61 6c 61 6e 63 69 6e 67 2c 20 73 61 79 |x.balancing, say| 00002090 20 65 76 65 72 79 20 35 30 20 6f 72 20 31 30 30 | every 50 or 100| 000020a0 20 72 65 63 6f 72 64 73 2c 20 63 61 6e 20 6d 61 | records, can ma| 000020b0 72 6b 65 64 6c 79 20 72 65 64 75 63 65 20 74 68 |rkedly reduce th| 000020c0 69 73 20 74 69 6d 65 2e 0a 0a 50 72 69 6e 74 69 |is time...Printi| 000020d0 6e 67 20 74 68 65 20 54 72 65 65 20 53 74 72 75 |ng the Tree Stru| 000020e0 63 74 75 72 65 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |cture.==========| 000020f0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002100 3d 0a 54 68 69 73 20 69 73 20 73 6f 6d 65 74 68 |=.This is someth| 00002110 69 6e 67 20 79 6f 75 20 64 6f 20 65 69 74 68 65 |ing you do eithe| 00002120 72 20 6f 75 74 20 6f 66 20 69 64 6c 65 20 63 75 |r out of idle cu| 00002130 72 69 6f 73 69 74 79 20 6f 72 20 74 6f 20 73 65 |riosity or to se| 00002140 65 20 77 68 65 74 68 65 72 20 61 6e 0a 69 6e 64 |e whether an.ind| 00002150 65 78 20 74 72 65 65 20 6e 65 65 64 73 20 62 61 |ex tree needs ba| 00002160 6c 61 6e 63 69 6e 67 2e 20 27 50 72 69 6e 74 20 |lancing. 'Print | 00002170 69 6e 64 65 78 27 20 70 72 6f 76 69 64 65 73 20 |index' provides | 00002180 74 77 6f 20 63 68 6f 69 63 65 73 3a 2d 0a 0a 20 |two choices:-.. | 00002190 20 20 28 31 29 20 74 6f 20 70 72 69 6e 74 20 74 | (1) to print t| 000021a0 68 65 20 61 63 74 75 61 6c 20 6b 65 79 73 2c 20 |he actual keys, | 000021b0 70 6f 73 69 74 69 6f 6e 65 64 20 61 63 63 6f 72 |positioned accor| 000021c0 64 69 6e 67 20 74 6f 20 74 68 65 20 6c 65 76 65 |ding to the leve| 000021d0 6c 20 0a 20 20 20 20 20 20 20 77 68 69 63 68 20 |l . which | 000021e0 74 68 65 79 20 6f 63 63 75 70 79 20 69 6e 20 74 |they occupy in t| 000021f0 68 65 20 74 72 65 65 0a 0a 20 20 20 28 32 29 20 |he tree.. (2) | 00002200 74 6f 20 70 72 69 6e 74 20 6f 6e 6c 79 20 74 68 |to print only th| 00002210 65 20 6e 75 6d 62 65 72 20 6f 66 20 6e 6f 64 65 |e number of node| 00002220 73 20 6f 6e 20 65 61 63 68 20 6c 65 76 65 6c 2e |s on each level.| 00002230 0a 0a 54 68 65 20 64 61 74 61 20 70 72 69 6e 74 |..The data print| 00002240 65 64 20 61 70 70 6c 69 65 73 20 74 6f 20 74 68 |ed applies to th| 00002250 65 20 63 75 72 72 65 6e 74 20 73 75 62 66 69 6c |e current subfil| 00002260 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 |e of the current| 00002270 20 6b 65 79 20 61 6e 64 20 69 73 0a 6f 75 74 70 | key and is.outp| 00002280 75 74 20 74 6f 20 61 20 73 63 72 65 65 6e 20 77 |ut to a screen w| 00002290 69 6e 64 6f 77 20 66 72 6f 6d 20 77 68 69 63 68 |indow from which| 000022a0 20 69 74 20 6d 61 79 20 62 65 20 73 61 76 65 64 | it may be saved| 000022b0 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 | in the same way| 000022c0 20 61 73 20 61 6e 79 0a 6f 74 68 65 72 20 6c 69 | as any.other li| 000022d0 73 74 20 28 73 65 65 20 27 50 72 69 6e 74 69 6e |st (see 'Printin| 000022e0 67 27 20 2d 20 4f 75 74 70 75 74 20 64 65 73 74 |g' - Output dest| 000022f0 69 6e 61 74 69 6f 6e 29 2e 0a 0a 49 66 20 74 68 |ination)...If th| 00002300 65 20 74 72 65 65 20 69 73 20 76 65 72 79 20 64 |e tree is very d| 00002310 65 65 70 20 61 6e 64 20 73 74 72 61 67 67 6c 79 |eep and straggly| 00002320 20 69 74 20 6d 61 79 20 6e 6f 74 20 62 65 20 70 | it may not be p| 00002330 6f 73 73 69 62 6c 65 20 74 6f 20 73 68 6f 77 20 |ossible to show | 00002340 61 6c 6c 20 6f 66 0a 69 74 2e 20 54 68 65 20 6d |all of.it. The m| 00002350 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 |aximum number of| 00002360 20 6c 65 76 65 6c 73 20 77 68 69 63 68 20 63 61 | levels which ca| 00002370 6e 20 62 65 20 73 68 6f 77 6e 20 69 73 20 69 6e |n be shown is in| 00002380 20 66 61 63 74 20 34 30 2c 20 69 6e 63 6c 75 64 | fact 40, includ| 00002390 69 6e 67 0a 74 68 65 20 72 6f 6f 74 2e 20 55 73 |ing.the root. Us| 000023a0 69 6e 67 20 6f 70 74 69 6f 6e 20 28 31 29 20 61 |ing option (1) a| 000023b0 62 6f 76 65 20 63 61 75 73 65 73 20 6b 65 79 73 |bove causes keys| 000023c0 20 77 68 69 63 68 20 63 61 6e 6e 6f 74 20 62 65 | which cannot be| 000023d0 20 64 69 73 70 6c 61 79 65 64 20 69 6e 0a 74 68 | displayed in.th| 000023e0 65 69 72 20 63 6f 72 72 65 63 74 20 70 6f 73 69 |eir correct posi| 000023f0 74 69 6f 6e 73 20 74 6f 20 61 70 70 65 61 72 20 |tions to appear | 00002400 64 6f 77 6e 20 74 68 65 20 6c 65 66 74 20 68 61 |down the left ha| 00002410 6e 64 20 73 69 64 65 20 6f 66 20 74 68 65 20 77 |nd side of the w| 00002420 69 6e 64 6f 77 20 77 69 74 68 0a 61 20 6e 6f 74 |indow with.a not| 00002430 65 20 69 6e 64 69 63 61 74 69 6e 67 20 74 68 65 |e indicating the| 00002440 20 6c 65 76 65 6c 20 69 6e 20 77 68 69 63 68 20 | level in which | 00002450 74 68 65 79 20 6f 63 63 75 72 2e 0a 0a 49 66 20 |they occur...If | 00002460 79 6f 75 20 63 68 6f 6f 73 65 20 28 31 29 2c 20 |you choose (1), | 00002470 61 20 64 6f 75 62 6c 65 20 63 6c 69 63 6b 20 77 |a double click w| 00002480 69 74 68 20 53 45 4c 45 43 54 20 6f 6e 20 61 6e |ith SELECT on an| 00002490 79 20 6f 66 20 74 68 65 20 6b 65 79 73 20 77 69 |y of the keys wi| 000024a0 6c 6c 0a 64 69 73 70 6c 61 79 20 74 68 65 20 72 |ll.display the r| 000024b0 65 6c 65 76 61 6e 74 20 72 65 63 6f 72 64 20 77 |elevant record w| 000024c0 69 74 68 20 74 68 65 20 63 61 72 65 74 20 70 6c |ith the caret pl| 000024d0 61 63 65 64 20 69 6e 20 74 68 65 20 6b 65 79 20 |aced in the key | 000024e0 66 69 65 6c 64 2e 20 0a 0a 44 75 70 6c 69 63 61 |field. ..Duplica| 000024f0 74 65 20 70 72 69 6d 61 72 79 20 6b 65 79 73 0a |te primary keys.| 00002500 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |================| 00002510 3d 3d 3d 3d 3d 3d 0a 57 68 65 72 65 76 65 72 20 |======.Wherever | 00002520 70 6f 73 73 69 62 6c 65 20 61 20 70 72 69 6d 61 |possible a prima| 00002530 72 79 20 6b 65 79 20 73 68 6f 75 6c 64 20 62 65 |ry key should be| 00002540 20 63 68 6f 73 65 6e 20 73 6f 20 61 73 20 74 6f | chosen so as to| 00002550 20 62 65 20 75 6e 69 71 75 65 2e 20 57 68 65 72 | be unique. Wher| 00002560 65 0a 64 75 70 6c 69 63 61 74 69 6f 6e 20 6f 66 |e.duplication of| 00002570 20 74 68 65 20 70 72 69 6d 61 72 79 20 6b 65 79 | the primary key| 00002580 20 6d 69 67 68 74 20 6f 63 63 75 72 20 74 68 65 | might occur the| 00002590 20 64 65 73 69 67 6e 65 72 20 6f 66 20 74 68 65 | designer of the| 000025a0 20 64 61 74 61 62 61 73 65 20 63 61 6e 0a 64 65 | database can.de| 000025b0 63 69 64 65 20 65 69 74 68 65 72 20 74 6f 20 61 |cide either to a| 000025c0 6c 6c 6f 77 20 6f 72 20 66 6f 72 62 69 64 20 69 |llow or forbid i| 000025d0 74 2e 20 28 54 68 65 20 73 77 69 74 63 68 20 77 |t. (The switch w| 000025e0 68 69 63 68 20 63 6f 6e 74 72 6f 6c 73 20 74 68 |hich controls th| 000025f0 69 73 20 69 73 0a 68 69 64 64 65 6e 20 66 72 6f |is is.hidden fro| 00002600 6d 20 70 72 79 69 6e 67 20 65 79 65 73 20 69 6e |m prying eyes in| 00002610 20 74 68 65 20 70 61 73 73 77 6f 72 64 2d 73 65 | the password-se| 00002620 74 74 69 6e 67 20 77 69 6e 64 6f 77 20 61 6e 64 |tting window and| 00002630 20 69 73 20 74 68 75 73 20 75 6e 64 65 72 0a 27 | is thus under.'| 00002640 4d 61 6e 61 67 65 72 27 2d 6c 65 76 65 6c 20 63 |Manager'-level c| 00002650 6f 6e 74 72 6f 6c 2e 20 53 65 65 20 27 50 61 73 |ontrol. See 'Pas| 00002660 73 77 6f 72 64 73 27 20 66 6f 72 20 6d 6f 72 65 |swords' for more| 00002670 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 29 20 49 | information.) I| 00002680 66 20 64 75 70 6c 69 63 61 74 65 0a 6b 65 79 73 |f duplicate.keys| 00002690 20 61 72 65 20 70 65 72 6d 69 74 74 65 64 20 69 | are permitted i| 000026a0 74 20 69 73 20 73 6f 6d 65 74 69 6d 65 73 20 75 |t is sometimes u| 000026b0 73 65 66 75 6c 20 74 6f 20 68 61 76 65 20 61 20 |seful to have a | 000026c0 6c 69 73 74 20 6f 66 20 74 68 65 6d 2e 20 53 75 |list of them. Su| 000026d0 63 68 20 61 0a 6c 69 73 74 20 69 73 20 63 72 65 |ch a.list is cre| 000026e0 61 74 65 64 20 62 79 20 27 46 69 6e 64 20 64 75 |ated by 'Find du| 000026f0 70 6c 69 63 61 74 65 73 27 20 61 6e 64 20 6d 61 |plicates' and ma| 00002700 79 20 62 65 20 73 61 76 65 64 20 61 73 20 61 20 |y be saved as a | 00002710 74 65 78 74 20 66 69 6c 65 2e 0a 0a 43 6c 6f 73 |text file...Clos| 00002720 65 6c 79 20 72 65 6c 61 74 65 64 20 69 73 20 74 |ely related is t| 00002730 68 65 20 66 69 6e 61 6c 20 65 6e 74 72 79 20 6f |he final entry o| 00002740 6e 20 74 68 65 20 27 55 74 69 6c 69 74 69 65 73 |n the 'Utilities| 00002750 27 20 73 75 62 2d 6d 65 6e 75 3b 20 27 57 61 72 |' sub-menu; 'War| 00002760 6e 20 6f 66 0a 64 75 70 6c 69 63 61 74 65 73 27 |n of.duplicates'| 00002770 2e 20 49 66 20 74 69 63 6b 65 64 20 74 68 69 73 |. If ticked this| 00002780 20 63 61 75 73 65 73 20 61 20 77 61 72 6e 69 6e | causes a warnin| 00002790 67 20 6d 65 73 73 61 67 65 20 74 6f 20 62 65 20 |g message to be | 000027a0 64 69 73 70 6c 61 79 65 64 20 65 61 63 68 0a 74 |displayed each.t| 000027b0 69 6d 65 20 61 20 70 72 69 6d 61 72 79 20 6b 65 |ime a primary ke| 000027c0 79 20 69 73 20 61 62 6f 75 74 20 74 6f 20 62 65 |y is about to be| 000027d0 20 64 75 70 6c 69 63 61 74 65 64 2e 20 43 6c 69 | duplicated. Cli| 000027e0 63 6b 69 6e 67 20 6f 6e 20 74 68 69 73 20 6d 65 |cking on this me| 000027f0 6e 75 20 63 68 6f 69 63 65 0a 74 6f 67 67 6c 65 |nu choice.toggle| 00002800 73 20 74 68 65 20 74 69 63 6b 65 64 20 73 74 61 |s the ticked sta| 00002810 74 65 2e 0a |te..| 00002814