5.5 Retrieval - Search, Get, and Replace You have two basic methods of retrieval, GET and SEARCH. Neither is case-sensitive: capitals and lower case can be freely mixed. These commands can be accessed from the Main screen via their own individual buttons, or from the List screen via the 'Find recs' button. FIND also includes a search-and-replace command which can be used to locate and update, or simply locate, ANY text string - not just keywords. (NOT IN FREEWARE VERSION) 5.5.2 Get Overview -------- GET allows much more defined queries than Search. It retrieves specific records or sets of records by matching text precisely, or by date, or by absolute record number (particular records in the physical database files). Like Search, the set of "hits" (if any) creates a new List, and the List screen is automatically brought up to show them. If there are no hits, you are informed by a beep and (on the Main screen) a "No matching entries located" message at lower left of the screen. In that case, the previous List remains unchanged. Click Get. A panel or window like the Search panel appears, but showing a calendar (for point and click date selection) and three input fields: Topic (unlabelled by default), Key line, and "RecNo" (for entering specific record numbers). There is also a group of buttons allowing Gets by - (1) Topic, (2) Key, (3) Date or range of Dates, (4) Record number or range of Record numbers, and (5) "All" (which puts the entire database on the List) plus a Help button. In other words, there are four kinds of Get, all started from the same panel: - text-based ('Topic' and 'Key' buttons) - date-based ('Date' and 'datE range' buttons) - numeric ('Record' and 'recd raNge' buttons) - global ('All' button) Text-based Gets --------------- These try to match a string of characters entered by you against all Key or Topic lines in the database as appropriate, STARTING FROM THE FIRST POSITION in the line. They look, in other words, for an EXACT match from position 1 of the line, up to the point at which you stopped typing (disregarding case - Get is not case sensitive). If you organise databases in the right way, this can be very handy. (It is here that the unlabelled-by-default Topic field comes into its own.) Date-based Gets --------------- These allow you to retrieve all records for a particular date (or all undated records), and all those between a specified pair of dates (inclusively). ---------------------------------------------------------- These two query types have slightly different input requirements, which can be a bit confusing at first, so sit up and pay attention boys and girls. :-) ---------------------------------------------------------- When you click either 'Date' or 'datE range' buttons, the button set changes. Now you have: - Undated - pick Day - all dAys - pick Mth (month) - all mThs (months) - set Year - Ok plus Cancel and Help. SETTING UP A DATE: ----------------- Day/Month (or Month/Day) are entered as a pair, separately from Year. (UK or US format depending on the option selected in your BLUEBOOK.INI file.) ---------------------------------------------------------- Note: All years are leap years as far as BlueBook is concerned - it's up to you to get that right. Note also: Undated records are defined here as records with no day or month; they may or may not have a Year specified. ---------------------------------------------------------- First, click the day and month you want on the calendar. (If "keyboarding", the arrowhead in the centre indicates which part of the calendar, day or month, is active. Tab to switch, then use the arrow keys to pick a value. DON'T hit : that's the same as clicking "Ok" and it starts the Get.) Next enter a year. Click 'set Year' or type Y, then enter the desired year manually. Or enter an "*" wildcard for ALL YEARS. (You WILL need to hit here - you are in editing mode at this point.) 'GETTING' ON A SINGLE DATE: -------------------------- If you clicked 'Date', you are Getting all records for a single date, and you will now see a single date field at bottom left of the panel, initially set to [ 01 - 01 - * ] If you click 'Undated' or type U at this point, the 01/01 (dd/mm or mm/dd fields) go blank. You are now asking for all UNDATED records (no month or day) for ALL years. You can leave it like that, or you can click 'set Year' and ask instead for all undated records for a specific year. ---------------------------------------------------------- NB: You don't have to click 'set Year' - you can also click the year input field directly. Clicking 'Undated' or typing U again switches back to showing the day and month values. ---------------------------------------------------------- If you click 'all dAys', the day field changes to an "*". Likewise, If you click 'all mThs', the month field changes to an "*". This allows queries on (for example): "all records for the 10th of any month" "all records for any day in June" "all records in 1995", etc. ---------------------------------------------------------- To switch the *'s off and return to showing the currently selected day and month values, click 'pick Day' or type D, or 'pick Mth'/M, as appropriate. ---------------------------------------------------------- Year must be entered manually, or left as an "*" wildcard (meaning "all years"). Click 'set Year' or type Y to do this. When done, hit to leave edit mode. ---------------------------------------------------------- When your date or "date pattern" is set up, that's it. Click OK, type O or hit to begin retrieval. ---------------------------------------------------------- 'GETTING' ON A RANGE OF DATES: ----------------------------- If you clicked 'datE range', you are Getting all records between two specified dates (inclusively), and you will see two date "set up" fields at bottom left of the panel, initially showing as [ 01 - 01 - ] to [ ] ---------------------------------------------------------- The two dates must be fully specified, ie. no * wildcards. So although the same set of buttons appears (as for a single date), the top five ('Undated' thru 'all mThs') are disabled here. ---------------------------------------------------------- Set up first date as above ("'GETTING' ON A SINGLE DATE"), with the proviso that you MUST enter a valid year. Then click Ok, type O, or hit . The second "to" date set up field will activate itself. Enter the second half of the range in the same way as the first. (Reverse chronological order is okay, if you must.) This time when you click Ok, type O, or hit , the Get will begin (assuming the dates have been set up correctly). ---------------------------------------------------------- If either date is not set up correctly, "OK" will beep and refuse to proceed - either to inputting the second part of the range or to starting retrieval, depending on the date in error. ---------------------------------------------------------- As stated, all this can be a bit confusing, so internal Help is provided. Numeric Gets by Record Number ----------------------------- Much simpler. Just click 'Record' or type R, and enter into the "RecNo" field the absolute record number that you wish to retrieve. Assuming it is within the size of the file, and has not been 'deleted' (ie, flagged by the Del command as space available for reuse by Add), it will be retrieved. To get a RANGE of record numbers (inclusively), click 'recd raNge' or type N, and enter the two figures one after another. After typing a number, hit to leave edit mode on that field. The cursor skips over the second field entry, or not, depending on which button you clicked. When the number has been entered, or both numbers have been entered, the relevant record(s) are retrieved, placed on the List, and the new List is displayed. If the record is deleted or the range is invalid, a beep sounds and (on the Main screen) a "No matching entries located" message is shown at lower left of screen. In that case, the old List is retained. ---------------------------------------------------------- Records are stored in the files in the same order as they first appear on the List, ie. when it hasn't been sorted (or the other way around to be precise). Technically, the first record is actually Record 0; but we've started at 1 to keep things simple. The number of UNDELETED records in the database is shown on the information line at bottom left of the screen, after "[NAME- ". The absolute record number (position in file) of the current record is shown at bottom right of screen, after "DD-MM-YYYY/" (or "MM-DD-YYYY/"). To find the highest absolute record number either "Get All" and make the last record on the List current (which gives the highest VALID record number), or calculate it: find the size of the database's ".BBI" file in bytes and divide by 58, or the size of the ".BBD" file and divide by 454, or add both together and divide by 512. ---------------------------------------------------------- Global (Get/All) ----------------- Simpler still. Click Get or type G. Then click All or type A. All records in the database will be placed on the List (unless there are no records in the database), and the List screen automatically displayed. If there ARE no records to be Listed, a beep sounds and a "No matching entries located" message is displayed at lower left of screen.