DATA-X DATABASE MANAGEMENT SYSTEM››By Jeffrey A. Summers›› DATAX.CTB is a full-featured›information processing system for›Atari XL/XE computers with at least›64K. The program can handle files›with up to 300 characters (letters›or digits) per field, 20 fields per›record, 1,000 records per file, for›a maximum of 600,000 bytes of›information. The program performs›certain mathematical manipulations›across fields as well as the add,›delete and update functions normally›found in this type of program. With›the use of windows, no complicated›commands need be learned. The››XXX›program prompts for all needed›information to perform its›functions.›› Like most current database›systems, you create files that are›arranged as groups of RECORDS. Each›record contains a number of FIELDS,›which contain the actual›information.››GETTING STARTED› Take a blank disk and format it›with DOS 2 or DOS 2.5. (Be sure to›WRITE DOS FILES to this disk.) Now,›copy the files RNTIME.OBJ and›AUTORUN.CTB to this disk. Finally,›rename RNTIME.OBJ to AUTORUN.SYS.›When you're done, you should have››XXX›four files on your disk:› DOS.SYS› DUP.SYS› AUTORUN.SYS› AUTORUN.CTB›› To start, put this disk into your›drive, hold down the [OPTION] key›and turn on the computer. DATA-X›will load and run automatically.›››USING DATA-X:››THE FILES MENU›› The FILES menu, the first menu›you'll see, has the following›options:››XXX››CREATE A FILE›› First, decide how to arrange your›data. Each field can contain up to›300 characters (although only 255 of›these can be printed on the system›printer). The TOTAL number of›fields (total records times fields›per record) in a file cannot exceed›2,000, and the maximum number of›fields per record is 20 -- so you›define your file for 100 records›with 20 fields each, 1,000 records›with two fields each, or anything in›between.›› Let's create a sample address›book. Press [C] at the main FILES››XXX›window to Create a file. When›prompted for a filename for your›database, choose any legal filename›(up to 11 alphanumeric characters,›including an extender).›› When asked for the number of›records you want in the file, you›are setting the MAXIMUM number of›records. Though you can extend the›database later, you should choose an›adequate number of records to begin›with. Here, enter 10. At the›prompt for the number of fields,›enter seven: last name, first name,›street address, city, state, ZIP and›phone number.›› When prompted, enter field labels››XXX›and lengths. In this case, enter:›LAST, 20; FIRST, 10; STREET, 25;›CITY, 15; STATE, 2; ZIP, 5; and›PHONE, 10 (to include the area›code). The program then creates the›file and displays the MAIN menu.››DISK DIRECTORY›› Typing D at the FILES menu lists›the files in drive 1 to a window.›You are then asked to press [RETURN]›again to go back to the FILES menu.››EXIT›› This option closes all files and›returns you to DOS.›››XXX›REBOOT›› This is equivalent to turning the›computer off and back on again but›causes less wear on the electronic›components inside. This option is›most useful when you're finished›with DATA-X and wish to use another›commercial program.››OPEN A DATABASE›› This opens a previously created›database for data entry, searches,›sorts, etc. Just type in a filename›when prompted. (Drive 1 is the›default.) Then you'll return to the›MAIN menu.›››XXX››THE MAIN MENU›››ADD A RECORD›› Pressing [A] lets you Add›information (records) to the›database. Since there is nothing in›our sample database yet, you'll›first need to add a few records.›The program prints the labels for›the fields one at a time, prompting›you to make your entry. Enter a›name, address and phone number,›pressing [RETURN] when you're done›with each field. Use [DELETE] be as›usual to delete typos. After you›enter a record, the program returns››XXX›you to the MAIN menu. Just press A›again to add more records. For our›example, make four or five entries.››FIND RECORDS›› This is one of the most powerful›functions in the program. It lets›you search the database, selecting›records for further processing.›› Choosing this option brings up a›sub-menu. Press [L] to list the›field labels in your file (in case›you've forgotten their order).›Press [R] to reset the flags. Only›"flagged" records are operated on›with most other options. Therefore›resetting the flags reselects ALL››XXX›the records (see below). Pressing›[E] exits to the MAIN menu, and [S]›initiates a search.›› When you start a session, all›records are "flagged," or selected.›This part of the program lets you›eliminate the records you don't want›to work with. The FIND routine lets›you include or exclude based on a›pattern match.›› From the FIND sub-menu, press [S]›to begin a search. When prompted›for the field on which to search,›press [1] and [RETURN] for our›example, choosing the first field›(last names). When asked for a›search string, type part or all of››XXX›one of the entries you made.›› The program can search such that›either the BEGINNING of the field or›the ENTIRE field is checked. The›first method will find the BUG in›BUGBLATTER but not in LADYBUG. The›second will find both.›› Next you are presented with a›list of logical operators -- AND,›OR, XOR and NOT -- which control the›manner in which the records are›flagged or unflagged:›› AND: if the field contains the›string and was previously flagged,›it is again flagged. All others are›unflagged. For example, if you want››XXX›anyone named BEESON who lives in›BUFFALO, you would first search on›LAST NAME for BEESON using AND,›which eliminates anyone who isn't a›BEESON, and then search on the city›field for BUFFALO, again using AND,›which makes it only the BEESONs in›BUFFALO. You'll probably use AND›for most of your searches -- it›simply eliminates all those records›from the current group that don't›match.›› OR: if the record is already›flagged OR if it contains the string›OR BOTH, then it is flagged.›Unflagged records that do not›contain the string remain unflagged.›››XXX› XOR (exclusive OR): works the›same as OR but excludes records that›meet both conditions. Normally, if›you wanted the BEESONs or anyone›else from BUFFALO, you'd first›search the LAST NAME field for the›BEESON using AND (so you get only›the BEESONs at first), then the CITY›field for BUFFALO using OR. If you›wanted all the BEESONs as well as›everyone from BUFFALO, but NOT any›of the BEESONs IN BUFFALO, you'd use›XOR for the second search.›› NOT: similar to AND NOT. If you›want the BEESONs who are NOT from›BUFFALO, search the LAST NAME field›for BEESON using AND. Then search›the CITY field for BUFFALO using››XXX›NOT. Combining these logical›operators enables you to do very›complex searches easily. The›program always tells you how many›records are flagged at the end of›your search.››PRINT AND DISPLAY›› Currently flagged records can be›displayed onscreen or printed on a›printer (or to a disk file)›according to the format you choose.›› For now, press D for DISPLAY to›look at the currently flagged›records. If there aren't any, go›back to the FIND menu and RESET the›flags. When you press D for››XXX›DISPLAY, the computer displays the›first flagged record. If the record›is long enough to go outside the›window space allotted, the program›asks you to press [RETURN]. Then it›clears the window and continues›displaying the record.›› After the record is displayed,›you can press: [U] to unflag that›record and display the next; [M]›returns you to the MAIN menu; or any›other key (including [RETURN]) to›display the next flagged record. So›before printing a set of records,›you can preview and unflag any you›don't want printed.›› Pressing [P] brings you to the››XXX›PRINT routine. When asked where you›want output directed, enter a›filename -- or simply press [RETURN]›to direct output to the printer.›You're then asked a repetitive›series of questions about which›field you want printed, where, and›how many characters per field.›› If you want the whole field›printed, typing a number greater›than 255 guarantees the entire›field. (There is a limit of 255›characters per field, however.)›› In our example, you may want the›first and last names on the same›line, the address on the next line,›the city, state and ZIP code on the››XXX›third line, and the phone number›ignored.›› To accomplish this, enter 2 for›the first field to be displayed, 1›for the column and 1 for the row.›(Press [RETURN] after each entry).›This prints the first name first.›› To add the last name to the same›line, enter 1 for the field, 12 for›the column and 1 for the row. The›address can be indented by using 5›for the column, but remember this›should now be row 2. Row 3 would›contain the city, state and ZIP,›using starting columns of 5, 20 and›25, respectively.›››XXX› Although entering the positions›and lengths for all of the fields›can be tedious, it gives you a great›deal of flexibility. To end your›list, type 0 for the field number.›You'll be prompted to check your›output device, then press a key to›start printing. If you want extra›lines between records, the easiest›way is to have the lines at the top.›››SORTING A DATABASE››› The SORT option lets you arrange›and rearrange your data to suit your›current needs. After choosing this›option, you're asked for the field››XXX›on which to base the, then whether›you want the sort in ascending or›descending order.›› In our example, it would make›sense to sort by last name when›printing out the address book or if›making up a set of nametags, but if›you are bulk-mailing newsletters›from the same list, these must be›organized by ZIP code. So, to sort›by last name you'd enter 1 for the›field and then A for an ascending›(alphabetical) sort. To sort by ZIP›code, enter 6 for the field and A or›D for the order of the sort.›› You can also sort your database›on more than one field, with››XXX›different fields having priority.›For example, to sort names in strict›alphabetical order, sort the›database first on the first names,›THEN by last name. The most recent›sort will take priority.›› NOTE: upon exiting the program›the order of the data returns to the›original. To make the sort›permanent, use the COPY database›function.›› Another important point is that›ONLY FLAGGED RECORDS ARE SORTED.›This lets you sort only certain›records in the database, but be sure›if you want the ENTIRE database›sorted to RESET the flags through››XXX›the FIND option.›› One last point regarding the›sorting routines. Fields are sorted›by the ATASCII values of the›characters. Therefore, numbers come›before the letters, uppercase comes›before lowercase, and spaces come›before everything. For numbers to›be sorted properly, make sure›they're right- justified within the›field.›› The only complication here is›that the first character of the›first field of any record cannot be›a space. Therefore, don't use a›field that's likely to contain a›number as the first field in a››XXX›record.››DELETE RECORDS›› This is easy. Simply flag the›records using the SEARCH function›and press [D] at the MAIN menu.›When the program asks if you really›want these records eliminated, press›[Y] if that's what you want. If›not, press [N].›› NOTE: the space occupied by›deleted records is NOT freed up for›further entry. To clean up a›database after deleting records,›using the COPY database function.››UPDATING RECORDS››XXX›› To change the data within a›field, press [U] on the MAIN menu.›The program then cycles through the›flagged records, displaying the›first field of each.›› You are asked whether that record›requires updating. Because only›flagged records are displayed, you›don't have to go through the entire›database looking for the record to›update; you can select the records›with FIND and the update only the›ones you wish.›› If you press [Y] at the prompt›for updating the displayed record,›the program lists each field in››XXX›order. You can make changes to the›field, and pressing [RETURN]›re-enters the field. If you don't›want to make changes, press [RETURN]›to proceed to the next field. After›the record has been updated the›program then continues to list the›first field of each flagged record.››MATH›› The program can perform a number›of mathematical functions. By›pressing [M] at the MAIN menu and›then entering an appropriate field›number, a series of values are›displayed onscreen: the sum of the›field, the average of the field, the›sum of the flagged records in the››XXX›field, the average of the flagged›records in the field, the percentage›of records flagged, and the›percentage of the VALUES of the›flagged records as a fraction of the›total.›› Thus it's easy to flag a group of›records to see whether that group›contributes proportionately to the›totals (for example, a business can›have multiple divisions or areas›that contribute to the profit).›› Non-numerical values are excluded›from consideration. If a result›would cause an error (for example,›if no records are flagged, or the›calculation of flagged records would››XXX›involve dividing by zero) the result›is skipped.››COPY›› This utility lets you copy all or›part of a database. It also lets›you clean up a database that has›been cluttered by deleted records.›› After pressing [C] at the MAIN›menu, you are asked for the output›file. Type the complete filename.›Next, you're asked if you want the›entire database copied or just the›flagged records. Either way, the›data will be written out to the new›file in the order of the current›sort.››XXX›› If you choose to copy the entire›database, it will remain the same›size, but deleted records will be›cleared out, making more room for›additions. If you choose to copy›just the flagged records, the new›database will only be as long as the›number of flagged records. To add›more records to the database, use›the XTEND option from the MAIN menu.››EXTENDING A DATABASE›› In case you've underestimated the›number of records you needed in a›database, this option lets you›extend it (keeping in mind the 2,000›total field limit). After choosing››XXX›this option from the MAIN menu, you›are asked how many records you want›to add. (Keep in mind that whenever›you extend the database you waste›some disk space.) This option›reverses any sorting you had done,›so be sure to use the COPY function›to save your sorted database before›using this option.››EXIT›› This option closes the database›properly and returns you to the›FILES menu so you can work on›another file.››››