Interesting problem with Qtility 13


[ Follow Ups ] [ Post Followup ] [ Signature.net Forum ]

Posted by Robert G Laurin (216.209.200.220) on November 05, 2004 at 05:32:41:

Way back in February I created a new file (189 bytes) and by the time I was done writing my code, I found that I had created it too short. So I used the Option 13 - DIRMAINT Option 4 to Change the Record Length to 300 (no data had been written yet).

About a dozen records were put in this file and not modified since.

So far so good.

Months later in August, following a crash, I rebuilt the directory. I did not notice but the file entry was re-created using the original file length of 189.

Somehow all the programs reading that file never crashed once. None of the regular programs wrote to that file. When I tried modifying one of the records using the program I wrote way back, it crashed with an array subscript out of range (trying to write 300 in a 189 file).

After investigating, I discovered that the I00 showed a record length of 189 ($00BD). I manually edited the .I00 and changed the record length in it to 300 ($012C) and used DIRMAINT to change the entry back from 189 to 300.

After I did that, the file got kind of "stuck" in the NLM and whenever I tried accessing the data, it gave me a record of 300 but showed only the first 189 bytes. Even QMAINT in Hex showed only first 189 bytes with $20 and all and the remainder of the record showed NOTHING not even $00 just blanks in the hex section.

I had to unload the NLM to release the file. After that it was fine... weird eh!

Now I am wondering, why doesn't DIRMAINT peek or poke in the .I00 of keyed files when record length is changed?



Follow Ups:



Post a Followup

Name:
E-Mail:

Subject:

What is the name of the main Signature System's Product?

Comments:

Optional Link URL:
Link Title:
Optional Image URL:

You may attach up to 5 files to your followup (see below):






[ Follow Ups ] [ Post Followup ] [ Signature.net Forum ]