DATASTORE IN DEPTH by Alan Wigginton «» 44 «» 44 «» 44 «» 44 «» 44 «» 44 «» 44 «» 44 «»  Datastore is Digita's (fairly) new, easy to use database program. This review is based on a demo version from a February Amiga Format cover-disk. In this version printing has been disabled, as has the export function, and you can only save 10 records. You can however create or import as many records as you like - you just can't save them. Everything else seems to be there. Datastore takes the memory-resident, flat-file approach, which means that the size of files is limited by amount of ram and it cannot link records from separate files. The size is not an issue for most home users as you can fit quite a lot of data in a couple of meg of ram. However If you only have a 1 meg system this could be a problem as Datastore itself is quite a large program (305,276 bytes). DATABASE DESIGN You define your database by designing a form. These are the same thing in Datastore; you cannot have more than one display format for a file. In design mode, you are presented with vertical and horizontal rulers with a grid over the form. You select the type of object to add from a floating tool-bar (or a menu) and draw an appropriate box on the form. A requester then appears asking you for details about the object. By default the box will snap to the grid, but you can turn this off and position it at any pixel location. You can choose from fixed images (for logos or banners), text captions in any font, and boxes filled with any colour as well variable data fields. You can move objects in front of or behind other objects. All in all it is quite powerful although field borders are single lines rather than WB2 bevelled style. This approach is a bit on the slow side as you have to select the tool, draw the box, fill in the requester and press OK for each object. This is not a big issue as you normally only do this once for each file. Object size and position can be set exactly by entering the coordinates into the requester as well as dragging using the mouse. DATA FIELDS The options for data fields are comprehensive and easy to use, although the details are spread over three small requesters. Fields are not limited to a single line as they are in many other databases - just draw the box as large as you like. Each field must have a unique name which cannot contain spaces. Names are displayed at the left of the field and can be quite long. You can suppress the automatic display of names and set up your own text captions. You have a good choice of field types with text, number, date, time, image, boolean, and list. Number fields can be calculated from other fields. There are reasonable formatting options for most types although you are limited to zero, one or two decimal places for number fields and, on my system at least, the currency format displays a pound symbol (I only have WB2 without localisation). You can define validation criteria, so that values outside the valid range will be rejected. I had a bit of trouble with this and I suspect there may be a bug here as it did not always seem consistent. The range of field types and options is excellent. There does not seem to be any limit to the number of fields, although I only got to about 25 because adding them is fairly tedious. One significant omission is that field headings and data only use the TOPAZ8 font. Despite the fancy interface, other fonts can only be used for the fixed text captions, not variable data. EDITING YOUR DATABASE This is where Datastore begins to disappoint. The edit window displays a 'deck of cards' outline which, in my opinion, only takes up space and looks like a cheap gimmick. You cannot limit the number of characters entered into a field. Generally this is good although there are special cases where you may want to limit the field size to fit a limited space such as a label. Fields can extend over more than one line with word-wrapping as you would expect. The problem is that the text does not scroll. If you enter more characters than will fit in the field, the last word will wrap to the next line which is invisible. You can continue to key but you cannot see what you are keying. The only way to see them is to go to design mode and make the field box larger. This makes for interesting data entry. Lets all play "Where did my cursor go". Come on Digita - either you scroll fields so we can see what we are doing or you limit the characters to what can be displayed. Character fields that can go over several lines are great, but not when implemented like this. You cannot position the cursor on a character within a field using the mouse - you must use the cursor keys. Calculated fields don't always. Calculate that is. I couldn't quite work out what was happening, but with a number of calculated fields, values seem to change at random as you TAB through the form. In some cases after making a change, I had to TAB through the form twice to get the correct value. Whatever the reason, it is very easy to have a calculated field displaying an incorrect value, even after saving and reloading the file. In some cases where I defined as calculated from two other calculated fields, Datastore refused to display a value for it at all. If you make an error in the calculation expression, you don't get told about it, the calculation just doesn't happen. It also forgets to justify fields correctly. I asked for numeric fields to be right justified but this seems to happen only in definition mode and on reports. For boolean fields, you get a pop up list box instead of a cycle gadget or a checkbox. This is fine, but it pops up whenever you tab to the field, even if you really want to TAB past the field. Image fields also do this. Attempt to TAB past an image field and a file requester pops up in case you want to change it. Easy to use it may be, but it is also disruptive and frustrating. This will really drive you nuts when you are tabbing through the form trying to get the calculated fields to calculate. If you enter garbage in a date field, the program doesn't object; it tries to make sense of it. If you enter 11/29/94 by mistake instead of 11/2/94, it is translated to 29 Nov 94. This idea is good, but even absolute garbage is changed into a valid, but meaningless, date. I would prefer to be told if I had entered rubbish. It happily accepts and ignores alphabetic characters typed into numeric fields. It does warn you with a requester if you forget to enter a field you defined as mandatory, or if you enter a value outside your validation range. You can bypass these by just clicking OK and moving the cursor away from the field in error. PICTURE HANDLING I was quite impressed with the picture handling. As usual the database stores a reference to the picture file rather than storing the image in the file. The picture is resized to fit in the box, although the aspect ratio is not changed. The colours are remapped so you get a reasonable display using the number of colours available. It does not adjust for different display resolutions, so images made with a different resolution to the current screen will look wrong. With WB 3.1, you can display any picture format for which you have a datatype, although I couldn't check this. Earlier versions are restricted to IFF ILBM files. You do not lose quality no matter how many times you re-size the picture. It obviously keeps the original and re-sizes a copy for display. Very good. You can turn display of images off to speed up processing. Obviously loading, re-sizing and remapping colours take time particularly on the old faithful 68000 processors. USING YOUR DATA A major disappointment is that Datastore does not support a list display. By this I mean being able to list records, one per line, down the screen. A list display is like a wide angle view - a cinemascope screen compared to a television. You can see a record in the context of the other records around it and it does make a big difference. You can get a list on screen from Datastore by running a report which is slow and cumbersome but better than nothing. Datastore has several methods of searching. Find will locate the next (or previous) matching record, while Query which will extract a subset of records that match your criteria. It has a also GoTo function, but this is by record number which is of limited use. The Record Browser toolbar (a small window) has next, previous, first and last record arrows. FIND Find is a search through the database for a string and works much like a wordprocessor search. You can search forwards or backwards, for a whole or part word and all fields or a single field. It also has a replace option. A neat touch is that by pressing a button, you can select from a list of previous values you searched for. Replace seems to have a problem. If you find with replace, pressing replace after finding a record often changes the string in the NEXT record found rather than the one you just found. The repeat find function ALWAYS gives a software failure, thankfully without crashing the whole machine. This is powerful and easy to use. Excellent design although marred by a couple of bugs. QUERY Query allows you to create a subset of records that match your selection criteria. You can then display, print or create a new file using this subset. This is too limited in that you are allowed only two selection conditions. If you want to find all computer programmers who live in Sydney you have no problems. If, in addition, you only want those under 35 years of age - tough. Serves you right for being discriminatory. There is a good range of match types such as "contains", "contains like", "less than", "greater than" etc. You can use "and" or "or" to combine your two conditions. Queries are saved with the database and can be chosen from a pick list so you don't have to keep entering the same query. When the query is run, only records satisfying your conditions are displayed until you re-display all records by selecting Query and choosing 'Show all records". Queries work well and maybe two conditions ARE enough for an entry level database, but it doesn't seem to match up with the slick interface. You cannot get around this by running a query against the result of a previous query to 'narrow down' your selection. SORTING You can have three levels of sort key which is a limit, but an acceptable one. I think most people could get by with three sort keys. The problem is that sorting is slow. For files of several hundred records it is reasonable. It sorted 400 records on a single field in 1 min 13 seconds which is acceptable, although a decent sort would knock it over in 20 seconds or less. When I threw a 6,700 record file at it and sorted it on two fields, it took a whopping 38 minutes. A reasonable figure for this would be 5-10 minutes. These figures are for my 68000 A500 - faster processors will obviously be better. For many home users, of course, this will not be a problem as their files will typically be small. New records are not inserted in sequence, they are always added to the end of the file. REPORTS This gets a bit difficult as printing is disabled in the demo version. We can do some evaluation as reports can be viewed on screen before printing. Only column, list style reports can be printed. As far as I could tell there is no provision for printing forms or labels, although it is possible that these are present but were disabled. The reports you define are saved with the database and can be run by choosing them from a pick list. To define, or alter, a report, you choose the fields to be printed and arrange them in the order you want. You can also choose a header and footer which can contain text, page numbers and dates etc. You can also associate a query with a report if you only wish to report on selected records. Reporting features are only fair. Control of field width is possible but awkward. The number of characters printed for a field seems to be determined by the field width on the form. More characters are shown on the report and this is probably because the field name uses some of the space on the form. Because reports are displayed on screen, we can use this as a substitute for a list display even though it is slower and more awkward than a real list display. I have some reservations of the way reports are handled. It seems to generate the whole report in ram (not the ram disk) before it is printed. While this is convenient and easy to use, it means that reports are limited by available memory and is a severe restriction on large reports. Possibly the program is smart enough to provide the convenient screen preview as well as printing in low memory situations. I couldn't check it out as printing is disabled in the demo version. IMPORT I was impressed by the Import function. At my first attempt, I created a file and tried to import it and received LOTS of error messages. On reading the help more carefully (this is a demo remember - no manual) I found that it wanted a header file, with field names, in the import file. It works very neatly. In design mode for a new file, select Import and it reads the header record, creates the fields for you and then loads the data. Just drag the fields to the right position and size and you are in business. There is an odd bug here. My import file had a field name containing a space. Datastore helpfully displayed a requester telling me of the error and changed the space to an underscore. It then went ahead and imported 6700 blank records. After a couple of attempts at importing, I changed the space to an underscore and it then imported the records correctly. OTHER FEATURES It can open its own custom screen or on any public screen including the Workbench screen. Various defaults can be changed easily. Any number of files can be opened, memory permitting, each in its own window. It has a neat feature called Librarian which allows you to define standard words or phrases and then paste them into fields instead of repeatedly keying them. The requester is modeless ie you can keep it open while working in the main window. Some options are set via the Tooltypes in the program icon. This includes the default path for databases, pictures and help files. The tooltypes also has default setting of SIMPLEREFRESH. This controls the method used by the program for handling window refreshing after it has been obscured by another window or requester. SIMPLEREFRESH requires that the program redraw the window itself which saves memory but tends to be slow. After reading the help I removed this which causes the program to use SMARTREFRESH. With this, the Amiga saves obscured bits of windows and restores them when they are uncovered. This transformed the feel of the program and made operations with requesters and menus much faster, although it does use more memory. SUMMARY Datastore has an attractive looking interface with pictorial icons and can create colourful displays very easily, although its basic default field display is rather ugly. The range of field types and options are excellent but the data manipulation functions are just not up to the same standard. Field editing and display really needs to be improved. It lacks some important features such as a list display and label printing which I would expect in a program at this level. It also lacks features such as indexes, file lookups, report breaks and sub-totals. These features, however, are not really required in a basic product like Datastore. If you want them, you will have to step up in cost and complexity to something like SuperBase Personal. Datastore has a sluggish feel that is only partially eased by changing the window refresh option. Opening and closing files was noticeably slow and sorting is far too slow on large files. This may not be as obvious on an A1200 or A4000 as it was on my A500. It has a number of relatively minor non-destructive bugs (I only mentioned some) and also crashes the system occasionally - not frequently but often enough to shake your confidence. It is really only suitable for the home user with relatively low data volumes and simple query and reporting requirements. This is version 1.0 of course, so many of these problems may well have been fixed. I have seen magazine ads that mention a revision 2. I will be very interested in seeing how the British magazines rate this program. I am afraid I don't have a high opinion of their critical ability for a program like this. Maybe they just want to keep their advertisers happy. «» 44 «» 44 «» 44 «» 44 «» 44 «» 44 «» 44 «» 44 «»