Corrupt Blob in Order Details Database

'Blob has been modified'

BLOB is an acronym for “Binary Large OBject”. It is the database term for any (usually large) amount of data that is not a fixed size. In SMS, common BLOB types are

  • Memo
  • Image
  • Report File

In Paradox, fixed size data is stored in the *.DB file. This file is orderly, fast, indexed, and can be read and written very quickly. In contract, BLOB data in Paradox is stored in the *.MB file.

If you put a BLOB record in the database, the .DB file will have an offset (pointer) saying where in the .MB file the BLOB is stored. It also has a size indicator, to say how many bytes the BLOB is.

Accessing a BLOB file involves finding the record in the .DB file, getting the pointer to the BLOB in the .MB file, reading down the .MB file until you come to the BLOB, and reading the number of bytes specified.

A BLOB Corruption occurs when the pointer into the .MB file does not start or end with a BLOB, and usually means that at least some data may be corrupted or lost.

**High**. This error often corresponds to data lost in the MB file. Because this is usually only the BLOB data (the fixed data in the .DB is not affected), the results of the corruption may not be immediately apparent. Memo fields and image fields should be verified immediately. For orders, the description, production notes, and any images may be lost.

This is usually caused by the .MB and .DB databases getting out of sync. In that respect, it is caused by the same thing that causes an "Index Out of Date" error.

See Also: sms_error_-_index_out_of_date.

  1. Run the dbrebuild utility.
  2. Open the database and check recent and past orders for indication of data lost.
    • If data loss is found, it may be possible to reinsert the BLOB data from a backup copy of the data.
  1. Ask customer if they were working in an Estimate or an Order when they got the blob error.
  2. Open the Database Browser.
  3. Navigate to either the Order, and Order Details or Estimate, and Estimate Details table depending on what the customer told you.
  4. Click in the table.
  5. Click the button to take you to the end of the table.
  6. Hit the End key on your keyboard.
  7. Double click on the last (MEMO) record that is capitalized, there are several (MEMO)/(Memo) fields you may have to check
    • note: if the text is good, the record is fine**
  8. Delete the corrupted message
  9. Move up to the next record and repeat
    • note: if numerous records are corrupted get assistance from Tier 2 tech
  1. Select the SQL tab in the DBBrowser
  2. Navigate to either the Order, and Order Details or Estimate, and Estimate Details table depending on what the customer told you.
  3. Click in the table.
  4. Hit the End key on your keyboard.
  5. Record the order of the fields and their names in order from (MEMO) field to the last field in the table, there are several (MEMO)/(Memo) fields you may have to check
    • note: Recommend you also capitalize the Field names the same way when recording them.
  6. Navigate to either the Order, and Order Details or Estimate, and Estimate Details table depending on what the customer told you.
  7. Click in the table.
  8. Click the button to take you to the end of the table.
  9. Hit the End key on your keyboard.
  10. Navigate to either the Order, and Order Details or Estimate, and Estimate Details table depending on what the customer told you.
  11. Click in the table.
  12. Click the button to take you to the end of the table.
  13. Hit the End key on your keyboard.
  14. Select the Advance tab in the SQL tab
  15. Run SQL 1
  16. Click the Execute SQL button

SQL 1

UPDATE "Order Details Database"
SET ModifierXML = ''
WHERE OrderDetailID > 0
  • note: If there are additional fields to be added, you will need to check with Development on the field type.
  • note: Recommend you also capitalize the Field names the same way
Resolution 4 (Get assistance from a Tier 2 Tech)
  • Reported : 6/2009
  • Version(s): SMS 2000, SMS 8.5, SMS 8.6, SMS 8.9
  • Fixed in : Problem is inherent to database type, although steps can be taken to reduce the likelihood of occurrence there is not a permanent fix for problem.
You could leave a comment if you were logged in.