Nifrabar,
I used to use what you are doing all the time, but those table are SO susceptible to OLE corruption, and honestly after 3 years of working with them I was never able to determine what would cause them so frequently. I could browse a table, make no changes to the file, and then browse it another day, and I'd have OLE corruptions on my images...
SO, I started doing this instead:
1) Create an Images (or whatever name you want) directory within your application directory structure.
2) Place all Images that are going to be used by your program into that directory.
3) Place the directory name and file name into a MEMO file. I decided on Memo's because of the unpredictable nature of file names, and did not want to have to rely on them being a specific length.
4) On the FORM or REPORT that you use, use the PICTURE object, instead of an OLE bound control.
5) Set the reference programmatically in your form to This.Picture = (<Table>.<MemoFieldName>). For a REPORT, using the "Picture/Ole Control" object, set the 3rd radio button (Expression or variable) and in the control source put in the name of the Memo Field.
This is fast, clean, and independent of needing to muck with OLE control programs that have to be attached with the APPEND GENERAL. As long as you keep it contained within your application's directory, and use just that part of the directory (you can even fairly safely hard-code this one...) saving just that part of the path, you can easily move your application from drive to drive, directory to directory without the need to update the path element of the picture files. It will reduce/remove a significant headache for you, especially if you have a table that needs frequent changes to OLE objects.
In the very least, if you are going to update the OLE object itself, DON'T do it by replacing the existing data. I found HEAPS of corruption problems with this. Better to make a new row, and delete the existing record. I was able to reduce my OLE corruption by about 80% when doing this, but still was too frequent for commercial use, hence my eventual migration to Memo fields. I have had zero issues with it in terms of performance, and in fact have noticed that on some machines it looks much better than the OLE versions do.
The Down Side: You have to expose your image files to the system... so not so much control over them. The OLE method works for like a business Logo that's used throughout the system or something, and is fairly static, but I don't use that method for anything else.
Best Regards,
Scott
"Everything should be made as simple as possible, and no simpler."
![[hammer] [hammer] [hammer]](/data/assets/smilies/hammer.gif)