v26.8.6
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.) andDataGridTable::fetchOne()now reliably read actual field values returned in the output message buffer instead of evaluating toNULL. - Selectable vs. Executable SQL Generation: Enhanced
RoutineHelper::getRoutineExecutionTemplateandExecuteRoutineDialogto inspect stored procedure source code forSUSPEND. Procedures withSUSPENDgenerateSELECT ... FROM proc(...), while executable procedures withoutSUSPENDdirectly generateEXECUTE PROCEDURE proc(...), correctly retrieving and displaying singleton output parameters in data grids. - Automated Unit Tests: Added regression tests in
execute_routine_dialog_testverifying 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 modifyingisEditReadOnly, FlameRobin now releases active statement caches inMetadataLoaderand 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_testto verifysetReadOnly(true)andsetReadOnly(false)operations and property verification.