Icon View Incident Report

Serious Serious
Reported By: Wes Peterson
Reported On: 9/22/1998
For: Version 1.04 Build 1
# 223 Conversion Utility for Version 1.04 Causing Corruption in Blob Header

Since going from 1.03 to 1.04, I have a new problem that relates to blobs.

Whether inserting a new record, or working to an existing record, after I make a change to the blob field, an attempt to post raises an exception of 9217 - error reading from file Negatives.BLB. After that
happens, attempting to cancel the edit raises an AV exception.

The code in question worked fine under 1.03. The only changes have been to convert the files to 1.04 format, and to change from TBlobStreams to TDBISAMBlobStreams.

Interestingly, the code does succeed in streaming the changed (or new) blob both into and out of the blob field, and repeatedly, before the post.

Unfortunately, it would be difficult to send you a small example because the streaming methods are from the PixelGraphics library, not the plain-jane VCL. So, let me try to explain what the program does:

As the user navigates from record-to-record, it's necessary to display the blob. This is done in the datasource's OnDataChange event by using the PG LoadFromStream method, and this part works.

Now, while a record is being inserted or edited, the user can acquire a new image and/or rotate the image 90 degrees left or right. As any of these things happen to the PixelGraphic object, the altered graphic is
streamed back into the blob - causing OnDataChange to fire and redisplay the image. This can be done repeatedly and all works well.

But when a post is attempted (either explicitly by the user, or by attempting to move to another record) the 9217 exception is raised.

I can still insert new records and edit existing ones, as long as I leave omit the image for new records, or leave existing images alone.

Comments Comments
Problem was with the conversion utility that messed up the BLOB header data for the .BLB file. If you used the conversion utility to convert your data files from 1.03 to 1.04 you should run a Repair on the data files to fix this problem.

Resolution Resolution
Fixed Problem on 9/23/1998 in version 1.05 build 1