On Sun, 20 Sep 2009 19:54:07 +0100, Roy Brown <[log in to unmask]> wrote: >In message <[log in to unmask]>, Bruce Hobbs ><[log in to unmask]> writing at 13:13:48 in his/her local time >opines:- >>On Sun, 20 Sep 2009 00:59:21 -0500, Michael <[log in to unmask]> wrote: >> >>>Before you call DBGET with mode=4, you should of previously called dbget >>>to read a record from this data set 'xxxx', using mode 1, 2, 3, 5, 6, >>>or possibly 7. I don't know of any other way to retrieve a valid >>>RECORD-NUMBER. >>> >>I don't recall seeing such a requirement documented. Do you happen to >>know the page number and version of the manual where you found that >>requirement? > >It's not a technical requirement as such (as I suspect you very well >know :-) ). > It certainly hasn't been my experience nor could I find anything to that effect in the manual myself. ;-) >It's more an indication that except, possibly, in the case of some >extremely specifically arranged and maintained Image dataset, accessing >record numbers 'blind' is unlikely to lead to any profitable result. > The only profitable result I ever found from such a "blind" access was reading record number one in order to initialize a dataset list at the beginning of a program. Of course I had to be prepared to ignore a "Directed end of file" if the dataset happened to be empty. >However, you certainly don't need to have previously read the actual >record in question; a multi-level bill of materials, say, will store the >next record at the current level (status elements 9 and 10) while >exploding the current record (and possibly so on downwards recursively), >repositioning itself at each returned level with a Mode 4 DBGET on the >next in chain, and so on. > The way I read Michael's posting was not that the record in question, but rather that SOME record from that dataset had to have been previously read. I guess I could've brought that out better in my original response. :-( Besides the list initialization I noted and the "specifically arranged and maintained" and BOM use cases you mentioned, the only other situation where I can recall using a directed read was to re-establish record currency after interrupting the processing of a chain to access some other record in the dataset. Of course that's actually very similar to your BOM use case. * To join/leave the list, search archives, change list settings, * * etc., please visit http://raven.utc.edu/archives/hp3000-l.html *