Flashback

Before I begin talking about Flashback I need to say a little bit about Archive. After all, why buy another database program when you get one free with your computer?

I’ve always liked databases, and I like Archive, but…. Bill Cable‘s columns have shown me that I certainly haven’t learned everything about Archive. I’ve never even had a data file lock me out from forgetting to close it. Though I have fallen asleep waiting for a search thru a 150K data file on disk. That perhaps is Archive’s biggest weakness; it keeps the bulk of its data on your microdrive cartridge or disk. Searches are terribly slow while it looks at each bit of data on the drive to see if it is the one needed. The nice thing about this is it allows standard 128K machines to keep data files much larger than they could handle in RAM. When one expands their QL with extra RAM this plus turns into a liability. [ Editor’s note : if you have enough free RAM, once an ARCHIVE database or any file has been totally read once the QL keeps a copy in RAM and eliminates unnecessary device accesses. With archive a simple way to get a database into RAM is to Search for something that won’t be found. If you are altering or inserting there will be lots of device accesses in any case. Also if you order your ARCHIVE database and use the Locate command you can have near instantaneous searches no matter how big the database is. ]

Flashback keeps its data file in RAM. In fact it will multi-task, by itself, with another program without needing Taskmaster or QRAM. I have a setup with just Quill and Flashback that I find very useful. From another program pressing the ‘ALT’ and ” together (or another defined pair) will bring up Flashback. It also works fine with Taskmaster.

Flashback has records and fields in the records like Archive. However a record or a field can be one character long or 10s of thousands of characters long. A record can have only one field or up to 60 fields. The number of fields or the field length can be different for each record. A field marker can be deleted joining two fields or sub-field markers added. A single record can also be split into two records at any point.

Flashback has the standard database commands (NEXT, BACK, FIRST, LAST, etc.) and some interesting new ones. Using the MERGE command picks up ASCII text from most any source. Capturing a Quill file or SuperBASIC listing is easy. There is a utility to convert Archive files to Flashback. One can pop out of Flashback with a record and place it into Quill, SuperBASIC or whatever. Use Flashback to capture a series of standard SuperBASIC procedures and file them. When you are writing a program in SuperBASIC call up Flashback and do a search to find the one wanted and bring it back to SuperBASIC.

Searches are advertised to be 100 times faster than Archive. My experience is that they have been as near to instant as I can tell. If anything is done to change the file then it needs to be SAVEd. This is much more safe than having the file OPEN during the changes.

The worst thing about databases is having to type in all that data! Here is a way to have your QL make a very useful database for you. Take a look at the SuperBASIC listing I call ‘Directory’. This sends the information from Toolkit II’s WSTAT (like DIR but more data) of a number of disks or microdrive cartridges to a RAM disk file. I then capture it with Flashback’s MERGE command and have a smart library guide to all my software medium.

Those without Toolkit II will need to delete line 100 and change the WSTAT in lines 160 and 230 to DIR. Those without RAM disks can change their reference in lines 160, 220 and 240 to a device they are not using. This means if you are using microdrive 1 to scan directories then keep your catalog of directory information on microdrive 2.

Run Flashback with an empty database and Directory in SuperBASIC. The program asks how may files, and this means how many cartridges or disks you wish to scan. When all the disks or microdrive cartridges are scanned for their directories then go into Flashback and CREATE a new record. Then use the MERGE command to ‘MERGE_ram3_file#1’ and the directory inforation is now in your record. You may add field markers at your leisure. The file name “file#1” is also arbitrary and easily changed. Next CREATE a new record again and MERGE. Use the cursor control to go to the end of the prompt and change it to ‘MERGE_ram3_file#2’. And so on until all the directories are now records.

I purchased Flashback from Sharps for $40 and feel it is a good value.

Directory : A SUPERBASIC Program to use with Flashback

10 REMark Directory Record Maker for
Flashback
20 By- David Youngquist
30 REMark unwitting help by Mike Lloyd in
5/89 QL World
100 TK2_EXT
110 CLS:CLS#2:CLS#0
120 INPUT"Don't forget the '_'!""Device?
";d$
130 INPUT'How many files? ';n
140 FOR z=1 TO n
145 n$='file#'&z
147 AT#0,0,48:PRINT#0'Insert
disk/cartrige':wait
150 scan
160 CLS#0:CLS#2:PRINT#2,'Directory list in
RAM3':WSTAT#2,ram3_
170 END FOR z
175 AT#0,1,48:PRINT#0,"All done"
180 :
190 DEFine PROCedure scan
210 CLS
220 OPEN_NEW#3,'ram3_'&n$
230 WSTAT#3, d$: CLOSE#3
240 OPEN_IN#3,'ram3_'&n$
250 INPUT#3, line$:PRINT "CATALOG: ";line$
260 REPeat loop
270 FOR x = 1 TO 18
280 INPUT#3,line$:PRINT line$
290 IF EOF(#3): EXIT loop
300 IF KEYROW(1) = 8: EXIT loop
310 END FOR x
320 PRINT "More >":PAUSE
330 AT 2,0:CLS 3:CLS 2
340 END REPeat loop
350 CLOSE#3
360 wait
370 END DEFine scan
380 :
390 DEFine PROCedure wait
400 AT#0,2,48:PRINT#0," Touch any key
":PAUSE:CLS#0
410 END DEFine wait
420 :