Skip to content

v26.8.6

Choose a tag to compare

@mariuz mariuz released this 21 Aug 17:02
· 8 commits to master since this release

FlameRobin 26.8.6 Release Notes

FlameRobin v26.8.6 brings targeted fixes for non-selectable stored procedure (without SUSPEND) execution and output parameter retrieval, and resolves exclusive access handling when modifying database access modes (Read-Only / Read-Write).


Highlights & Key Improvements

1. Non-Selectable Stored Procedure (Without SUSPEND) Output Retrieval Fix (#692)

  • Output Row Availability in Statement Backend: Updated FbCppStatement::execute() to mark output rows available (rowAvailableM = hasRow) on execution when output columns are present. Direct cell getters (isNull(), getString(), etc.) and DataGridTable::fetchOne() now reliably read actual field values returned in the output message buffer instead of evaluating to NULL.
  • Selectable vs. Executable SQL Generation: Enhanced RoutineHelper::getRoutineExecutionTemplate and ExecuteRoutineDialog to inspect stored procedure source code for SUSPEND. Procedures with SUSPEND generate SELECT ... FROM proc(...), while executable procedures without SUSPEND directly generate EXECUTE PROCEDURE proc(...), correctly retrieving and displaying singleton output parameters in data grids.
  • Automated Unit Tests: Added regression tests in execute_routine_dialog_test verifying selectable/executable procedure detection and statement singleton output row availability.

2. Database Read-Only Property Modification Exclusive Access Fix (#686)

  • Exclusive Access Handling: In Firebird, switching database access mode (READ ONLY / READ WRITE) requires exclusive database access. When modifying isEditReadOnly, FlameRobin now releases active statement caches in MetadataLoader and temporarily detaches the physical connection (d->getDALDatabase()->disconnect()) without tearing down UI frames or metadata collections.
  • Safe Reconnect & Live Refresh: Reconnects the physical connection immediately following the service call and in error handlers, followed by an in-place d->loadInfo() refresh.
  • Descriptive Error Messaging: If exclusive access cannot be obtained due to other external client attachments, FlameRobin provides a clear, descriptive message indicating that all other active connections must be closed.
  • Automated Service Tests: Extended fbcpp_service_test to verify setReadOnly(true) and setReadOnly(false) operations and property verification.

Full Commit Log since v26.8.5

  • a19e4e58 Release v26.8.6: Update version to 26.8.6 and add release notes
  • e7a47417 Fix database Read-Only property change requiring exclusive access (#686)
  • f613756f Fix executing non-selectable procedure producing NULL results (#692)