dsRefreshFields and BLObs

Summary

Have a TSQLQuery, connect to a Firebird DB, populate the SQLs (SQL, InsertSQL, UpdateSQL, DeleteSQL & RefreshSQL), insert a new record using Insert()->Post()->ApplyUpdates().

If the table used has a BLOb field, ApplyUpdates() will raise an exception:

Operation not allowed, dataset is not in an edit or insert state.

This happens even if the BLOb field is not assigned a value. Works ok for tables without BLOb fields.

System Information

  • Operating system: Arch Linux
  • Processor architecture: x86-64
  • Compiler version: 3.3.1-10634-gdea81f4f
  • Device: Desktop computer

Steps to reproduce

Run the attached test project.

Possible fixes

Attached proposed patch.

blob-field-refresh-test-01.zip

blob-field-refresh.patch