Skip to content

Releases: BlackbirdSQL/Firebird-DDEX-SqlEditor

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.3.1002 Release

22 Oct 15:34
Compare
Choose a tag to compare

Fixed Connection Dialog database dropdown .

New / Enhancements

  • Added User Option BlackbirdSQL Server Tools > Ddex Provider > Debug > Expected exceptions. Enabling this option causes expected exceptions to be output to the BlackbirdSql section of the VS output window for Release builds.

Fixes

  • Fixed anomaly where defining a property's ReadOnlyAttribute as false causes the property to attach to the Class ReadonlyAttribute. This caused a programmatic change to property's ReadOnlyAttribute to modify the Class level ReadOnlyAttribute, and by default to modify all properties without a ReadOnlyAttribute.
  • Fixed issue in Connection Dialog where a dummy blank database was not inserted if no Server Explorer or FlameRobin database existed for the selected DataSource/Server.

Full Changelog: v14.5.3.1001...v14.5.3.1002

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.3.1001 Release

22 Oct 12:03
Compare
Choose a tag to compare

Patch to address ReadOnlyAttribute anomaly.

New / Enhancements

  • Added User Option BlackbirdSQL Server Tools > Ddex Provider > Debug > Expected exceptions. Enabling this option causes expected exceptions to be output to the BlackbirdSql section of the VS output window for Release builds.

Fixes

  • Fixed anomaly where defining a property's ReadOnlyAttribute as false causes the property to attach to the Class ReadonlyAttribute. This caused a programmatic change to property's ReadOnlyAttribute to modify the Class level ReadOnlyAttribute, and by default to modify all properties without a ReadOnlyAttribute.

Full Changelog: v14.5.3.1...v14.5.3.1001

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.3.1 Release

22 Oct 09:00
Compare
Choose a tag to compare

Added User Option to output Expected Exceptions.

New / Enhancements

  • Added User Option BlackbirdSQL Server Tools > Ddex Provider > Debug > Expected exceptions. Enabling this option causes expected exceptions to be output to the BlackbirdSql section of the VS output window for Release builds.

Fixes

  • Fixed possible bug where an attempt is made to open an open connection for a second time in the connection dialog.

Full Changelog: v14.5.3.0...v14.5.3.1

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.3.0 Release

21 Oct 22:56
Compare
Choose a tag to compare

Major update including Selective Intellisense.

New / Enhancements

  • Replaced the Enable Intellisense SqlEditor user option with Intellisense Policy, which provides a radio button choice of Active Query Only, All Queries and Disabled. The default policy is Active Query Only which displays only the current active query's Intellisense messages. The option applies to only BlackbirdSql SqlEditor queries. This eliminates the ambiguity caused by Intellisense messages when multiple query windows with the same or similar names are open.
  • Implemented first phase of EventSource tracing and EventCounter telemetry. This replaces the legacy MS SqlServer SqlTracer, TraceUtils and Etw tracing and telemetry from the original Firebird port. Several User Options settings have been added to the diagnostics settings to cater for additional diagnostics filtering, which will be improved over time. All assemblies use the same BlackbirdSql EventSource provider base class, but have distinct static instances (all named Evs) by late binding to the base class using type parameters. This is simply to have only class declarative code in the final Evs types.
  • Added an n/nn (Statement n of Total nn) grid identifier to the upper left cell of grids for queries with multiple result sets.
  • Streamlined the reindexing of project type resolution services so that only the extension's shipped EntityFramework assembly version and the applicable project's version are checked for reindexing.
  • Added wrappers for all Path class methods that operate on file paths. The wrappers remove common invalid and non-printable characters from the path before calling the native Path method.
  • Added the ConnectionSource DataSource to differentiate between DataSource and edmx Connection Dialogs.
  • Code cleanup: Changed the prefix of all Ddex IVs interface implementations from the previous Borland T class type prefix convention to Vxb (VS Extension BlackbirdSql) because it conflicted with the Microsoft T prefix convention for Type Parameter/Specifier names.
  • Code cleanup: Removed the GuidId class because the built-in CommandID class is functionally equivalent.
  • Code cleanup: Moved the SplitNext and SplitPrev built-in VSStandardCommandSet97 commands into the CommandMapper as IBsCommandHandler type interfaces. This provides for a uniform system of handling global commands that is in line with the handling of internal extension commands.
  • Code cleanup: Separated Action QueryManager states as a subset of the new Operation state in the state syncronicity stack, due to subtle differences in their behavior during push/pop stack operations. Virtual states are cleared when the last Action state is popped. When the Operation state is popped, Virtual states are only cleared if no Action states exist in the stack. Virtual states become volatile whenever an Operation or Action state is pushed onto the stack, as was their behavior previously. The Operation state marker is set as the second to last enum marker in the EnQueryState enum.
  • Code cleanup: Renamed the Csb DatasetId property to the more descriptive name DatasetName. The DatasetName is the unique short name of a DbConnectionStringBuilder Database.

Fixes

  • Fixed bug where the FileDialog selection was not being correctly assigned in the Connection Dialog. Under certain conditions this also affected the ability to add the path manually.
  • Fixed IDSRefBuilder functionality for database ScalarFunctions.
  • Fixed issue where creating a new session connection within a query, with the "Add new connections to Server Explorer" checkbox checked, was not creating a new Server Explorer connection.
  • Fixed bug where a Server Explorer connection's events were not handled when the connection was added internally from a query window or Entity Data Model connection dialog.
  • Fixed a bug where the ReadOnlyAttribute of Csb descriptors was not being correctly updated. The proposed ConnectionName and DatasetName advanced properties descriptors must be readonly within the Application settings connection dialog.

Tips

  • Whenever a new Entity Data Model or DataSource connection is added using Add Connection, it must exist as a Server Explorer connection. You will be prompted to add it if it does not exist.
  • Modifications to an existing Server Explorer connection from within the Query Session, DataSource or edmx connection dialog will permanently update the Server Explorer connection. You will be prompted before any modifications are applied.

Full Changelog: v14.5.2.0...v14.5.3.0

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.2.0 Release

19 Oct 22:16
Compare
Choose a tag to compare

Major update including Selective Intellisense.

New / Enhancements

  • Replaced the Enable Intellisense SqlEditor user option with Intellisense Policy, which provides a radio button choice of Active Query Only, All Queries and Disabled. The default policy is Active Query Only which displays only the current active query's Intellisense messages. The option applies to only BlackbirdSql SqlEditor queries. This eliminates the ambiguity caused by Intellisense messages when multiple query windows with the same or similar names are open.
  • Implemented first phase of EventSource tracing and EventCounter telemetry. This replaces the legacy MS SqlServer SqlTracer, TraceUtils and Etw tracing and telemetry from the original Firebird port. Several User Options settings have been added to the diagnostics settings to cater for additional diagnostics filtering, which will be improved over time. All assemblies use the same BlackbirdSql EventSource provider base class, but have distinct static instances (all named Evs) by late binding to the base class using type parameters. This is simply to have only class declarative code in the final Evs types.
  • Added an n/nn (Statement n of Total nn) grid identifier to the upper left cell of grids for queries with multiple result sets.
  • Streamlined the reindexing of project type resolution services so that only the extension's shipped EntityFramework assembly version and the applicable project's version are checked for reindexing.
  • Added wrappers for all Path class methods that operate on file paths. The wrappers remove common invalid and non-printable characters from the path before calling the native Path method.
  • Code cleanup: Changed the prefix of all Ddex IVs interface implementations from the previous Borland T class type prefix convention to Vxb (VS Extension BlackbirdSql) because it conflicted with the Microsoft T prefix convention for Type Parameter/Specifier names.
  • Code cleanup: Removed the GuidId class because the built-in CommandID class is functionally equivalent.
  • Code cleanup: Moved the SplitNext and SplitPrev built-in VSStandardCommandSet97 commands into the CommandMapper as IBsCommandHandler type interfaces. This provides for a uniform system of handling global commands that is in line with the handling of internal extension commands.
  • Code cleanup: Separated Action QueryManager states as a subset of the new Operation state in the state syncronicity stack, due to subtle differences in their behavior during push/pop stack operations. Virtual states are cleared when the last Action state is popped. When the Operation state is popped, Virtual states are only cleared if no Action states exist in the stack. Virtual states become volatile whenever an Operation or Action state is pushed onto the stack, as was their behavior previously. The Operation state marker is set as the second to last enum marker in the EnQueryState enum.

Fixes

  • Fixed bug where the FileDialog selection was not being correctly assigned in the Connection Dialog. Under certain conditions this also affected the ability to add the path manually.
  • Fixed IDSRefBuilder functionality for database ScalarFunctions.
  • Fixed issue where creating a new session connection within a query, with the "Add new connections to Server Explorer" checkbox checked, was not creating a new Server Explorer connection.
  • Fixed bug where a Server Explorer connection's events were not handled when the connection was added internally from a query window or Entity Data Model connection dialog.

Full Changelog: v14.5.1.1...v14.5.2.0

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.1.1 Release

28 Aug 21:29
Compare
Choose a tag to compare

Minor enhancements and code cleanup.

New / Enhancements

  • Enabled the IDE SplitNext (F6) and SpitPrev (Shift-F6) global commands with AutoScroll. Grids in multiple resultset queries will automatically scroll into view when they receive focus.
  • Moved the initial statement terminator (batch separator) user option to SqlEditor > Query Execution > General so that it now appears in the Live Settings of a query. Setting the option within a query affects multi-statement script parsing only.
  • Enabled the Commit and Rollback SQL statements in SqlEditor scripts. These statements were previously disabled.
  • Code cleanup: Converted calls to the RdtManager ShowWindowFrame() and InvalidateToolbar() methods to direct calls instead of using an event driven mechanism. This includes calls to the Async versions of these methods.
  • Code cleanup: Converted all references to the this object in extension members to the name @this.
  • Code cleanup: Converted all references to string.Empty to it's functionally equivalent constant "".
  • Code cleanup: Moved all native db script parsing of server explorer nodes into a separate IBsNativeDbServerExplorerService service. This is to unclutter the IBsNativeDatabaseEngine service. Also moved the handling of native db error types into the IBsNativeDbException service.
  • Code cleanup: Dropped the IBsNativeDbCommand, IBsNativeDbConnection and IBsNativeDbConnectionWrapper services, as equivalent functionality was already available in the remaining native database services.

Fixes

  • Fixed issues with the IBsDbExceptionService. Database exceptions were themselves throwing exceptions when the exception were of type IscException. This caused error information loss when a critical Firebird connection error was displayed in the Advanced Message Box detailed information popup. Isc exceptions are typically raised when when a connection fails due to a broken network connection or server shutdown. Also cofigured the service to recognize an FbException with error code isc_net_write_err as a critical error and not an SQL error.
  • Removed second attempt to prevent a disconnect of connections that have been idle for 90+ minutes and have active transactions. Executing a mutating low-overhead SELECT statement on the database every 25 minutes fails to prevent the connection shutdown. The shutdown can be prevented by giving the connection a large ConnectionLifetime. The property has an upper limit of int.MaxValue seconds.
  • Fixed issue where first statistics snapshot was being dropped.

Tips

  • To manage your BlackbirdSql SqlEditor Text Editor and Intellisense settings, navigate to the Text Editor section in User Options. There you will find the settings for all text editors, including the BlackbirdSql editor, which is located under the FB-SQL language sub-menu. All other settings are located under the BlackbirdSQL Server Tools User Options section.
  • You can change the terminator as many times as you require within a multi-statement SQL script. It is not necessary to reset it to it's original initial value at the end of your script. As soon as you re-execute the query the terminator is reset to it's value in User Options or the query's Live (Transient) Settings.
  • The Visual Studio F6 (SplitNext) and Shift-F6 (SplitPrev) global commands navigate between tabbed panes within a document window pane. If you have a batch query with multiple result sets, the results tabbed pane will contain multiple result grids. The F6 and Shift-F6 commands can be used to navigate to each grid within the results pane.

Full Changelog: v14.5.1.0...v14.5.1.1

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.1.0 Release

28 Aug 19:32
Compare
Choose a tag to compare

Minor enhancements and code cleanup.

New / Enhancements

  • Enabled the IDE SplitNext (F6) and SpitPrev (Shift-F6) global commands with AutoScroll. Grids in multiple resultset queries will automatically scroll into view when they receive focus.
  • Moved the initial statement terminator (batch separator) user option to SqlEditor > Query Execution > General so that it now appears in the Live Settings of a query. Setting the option within a query affects multi-statement script parsing only.
  • Enabled the Commit and Rollback SQL statements in SqlEditor scripts. These statements were previously disabled.
  • Code cleanup: Converted calls to the RdtManager ShowWindowFrame() and InvalidateToolbar() methods to direct calls instead of using an event driven mechanism. This includes calls to the Async versions of these methods.
  • Code cleanup: Converted all references to the this object in extension members to the name @this.
  • Code cleanup: Converted all references to string.Empty to it's functionally equivalent constant "".
  • Code cleanup: Moved all native db script parsing of server explorer nodes into a separate IBsNativeDbServerExplorerService service. This is to unclutter the IBsNativeDatabaseEngine service. Also moved the handling of native db error types into the IBsNativeDbException service.
  • Code cleanup: Dropped the IBsNativeDbCommand, IBsNativeDbConnection and IBsNativeDbConnectionWrapper services, as equivalent functionality was already available in the remaining native database services.

Fixes

  • Fixed issues with the IBsDbExceptionService. Database exceptions were themselves throwing exceptions when the exception were of type IscException. This caused error information loss when a critical Firebird connection error was displayed in the Advanced Message Box detailed information popup. Isc exceptions are typically raised when when a connection fails due to a broken network connection or server shutdown. Also configured the service to recognize an FbException with error code isc_net_write_err as a critical error and not an SQL error.
  • Removed second attempt to prevent a disconnect of connections that have been idle for 90+ minutes and have active transactions. Executing a mutating low-overhead SELECT statement on the database every 25 minutes fails to prevent the connection shutdown. The shutdown can be prevented by giving the connection a large ConnectionLifetime. The property has an upper limit of int.MaxValue seconds.

Full Changelog: v14.5.0.3...v14.5.1.0

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.0.3 Release

19 Aug 13:45
Compare
Choose a tag to compare

Patch for Type A Type B project validity exception.

New / Enhancements

  • None.

Fixes

  • The KeepAlive Monitor has been modified to execute a dummy Select command on active connections with transactions at intervals of approximately 25 minutes. The connection verification function was not preventing a FirebirdClient shutdown of a connection after a prolonged idle period using the previous method.
  • Addressed issue where a VsProject type check on a Project.Object and a find on Project.References, to resolve assembly version mismatches, throws an exception.

Full Changelog: 14.5.0.2...v14.5.0.3

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.0.2 Release

19 Aug 12:07
Compare
Choose a tag to compare

Patch for Type A Type B project validity exception.

New / Enhancements

  • None.

Fixes

  • The KeepAlive Monitor has been modified to execute a dummy Select command on active connections with transactions at intervals of approximately 25 minutes. The connection verification function was not preventing a FirebirdClient shutdown of a connection after a prolonged idle period using the previous method.
  • Addressed issue where a VsProject type check on a Project.Object, to establish project validity, throws an exception.

Full Changelog: v14.5.0.0...14.5.0.2

BlackbirdSql DDEX 2.0 Provider & SqlEditor 14.5.0.0 Release

18 Aug 20:01
Compare
Choose a tag to compare

Major update addressing major and minor issues.

New / Enhancements

  • Added the Query Execution Settings as a button on the query toolbar.
  • Moved the Initial TTS State user option from the SqlEditor > Execution > General model to the SqlEditor > General model. This is to prevent the setting from appearing in the Transient Execution Settings options dialog, accessible from the context menu or toolbar of a query, where it would be redundant.
  • Included the SqlEditor script parsing in the error handling of batch processing so that SQL script parsing errors are only reported as SQL errors in the Messages tab instead of appearing in the detailed exception message box. This applies to both single-statement and multi-statement scripts. There may still be cases where certain iSql commands will still appear in the detailed critical error message box. Connection failures will still appear in the error message box.
  • Extensive ongoing code cleanup and comment documentation. Several types have also been renamed from their original MS SqlServer class names.
  • Converted initial push propagation of user settings models to on-demand push propagation. Settings are now initially pushed at the latest possible when a setting is actually required.
  • Ongoing removal of the default contructor syntax from classes to improve readability.

Fixes

  • Fixed bug introduced in version 14 that caused a new Server Explorer or Session connection that is based on a FlameRobin, Entity Data Model or Project settings connection, to create a duplicate connection with a numbered name, instead of taking ownership of the existing connection.
  • Resolved a longtime bug that caused SqlEditor User Options pages to fail when there had been an early load of the options models. This was caused by cascaded extension/package assemblies that were intermittently not picked up in the IDE's CurrentDomain.
  • Fixed bug that caused expansion of the full trigger list nodes to fail if full linkage was not completed. The linker was attempting to perform optimistic linking when full linkage was required.
  • Reimplemented lazy loading of options models and the SettingsManager after clearing up the SqlEditor User Options bug.
  • Updated the Visual Studio extension installer manifest to the correct VS range of 17.10 - 18.0.

Full Changelog: v14.1.0.1...v14.5.0.0