DDEX 2.0 provider and SqlEditor for Firebird. (Change Log)
The Ultimate Firebird DDEX 2.0 Provider and SqlEditor with the "look and feel" of Microsoft's SqlServer DDEX and SqlEditor extensions.
Screenshots
Open image in new tab to view fullscreen
Features
- Firebird DDEX provider support for Visual Studio's DDEX 2.0 IVs DML interfaces utilizing FirebirdSql.Data.FirebirdClient version 10.3.1.0.
- Microsoft SqlServer SqlEditor port for Firebird for editing Computed columns, Triggers, Views, Procedures, Functions, SQL scripts and
.fbsql files. Note: The Firebird Language Service is a phased implementation of Microsoft's Transaction-SQL SSDT language service. Intellisense may report Firebird specific grammar as errors or warnings but still successfully execute.
- New: Full support for multi-statement (batch) SQL scripts and iSql.
- Trigger/Generator auto-increment linkage. Linkage can be set to On Demand in user options. If enabled linkage will only take place when actually required.
- Full integration of Server Explorer with asynchronous loading. Connection dialogs include Host and Database drop-down selection; derived from Server Explorer, FlameRobin and the current solution projects' settings and EDM connection strings.
- SqlEditor text-based execution plans and statistics snapshot comparer.
- Configurable connection equivalency keys under
BlackbirdSql Server Tools DDEX user options.
- Within Server Explorer, top level folders for Tables, Views, Stored procedures, Functions, Sequence Generators, Triggers and Domains.
- Within tables, drilldowns for indexes, foreign keys and triggers, and table columns, index columns, foreign key columns and trigger columns.
- Identification of Identity fields, Primary keys, Unique keys and Computed columns.
- System table, system index and system trigger enumeration within the SE and support for system tables within the xsd and edmx models.
- Edmx identity (auto-increment primary key) column and foreign key support.
- Procedures, functions, views, triggers and computed columns display the decoded blr if no source exists.
- Display of initial value (seed), increment and next value within column primary key, trigger and sequence generator property windows.
- New query and data retrieval for both user and system tables.
- Local database connection drift detection across all connections in use within an IDE session. This applies to
local drift and does not detect remote database drift.
- Automated DbProviderFactories and EDM validation and update of a Solution's App.Config, and upgrade of EDMX models to DDEX 2.0. This procedure can be launched from the context menu of any Firebird node in Server Explorer.
- Plug and play. No configuration of the .csproj, app.config or machine.config files and no GAC registration.
- BlackbirdSql background and UI thread tasks compliant with the IDE TaskHandler and implements the user cancel feature for background tasks from the TaskHandler window.
- All exception, task progress and task status reporting logged to the output window accessible under BlackbirdSql in the dropdown (Enabled by default under Options).
- The connection node
Refresh command option in the SE will successfully recover from a connection timeout shutdown exception, to the node's previous state.
Disclaimer/Warning regarding exposing members with hidden access modifiers. The private edit field of the VS User Options PropertyGrid GridView is accessed to overcome a long-time irritant and implement radio buttons and check boxes into the grid by utilizing type converters and attributes. There are several other locations where hidden members are also exposed.
All access of this nature takes place in the BlackbirdSql.Core.Reflect class. As a rule no other code within the extension may expose hidden members. The code performing this access is 100% stable, using standard calls included in Visual Studio's Reflection. If you object to this practice, do not install this extension.
Deconstructing connection naming, equivalency and SE integration
For a clearer understanding of BlackbirdSql's RunningConnectionTable management of connections, insight into it's basic rules of operation can be found here.
Known issues
- Operations within the EDMX UI can take some time. For even a single table the wizard executes over 100 SELECT statements with the primary SELECT statement having 20+ JOINS and 5+ UNIONS. Even a Cancel request can lock up the IDE for some time. Be patient.
- Intellisense and Firebird grammar: Development of the Firebird Language Service is ongoing and support for Firebird grammar will be progressively extended over time. The Firebird Language Service uses the Visual Studio built-in T-SQL SSDT Language service as it's basis. This means that Intellisense may mark incompatible DML and DDL as errors. The scripts will still successfully execute.
- Support for embedded databases: BlackbirdSql uses the FirebirdSql.Data.FirebirdClient client, so embedded databases 'should' work, however no testing has been performed on embedded databases as of this writing.
- The SqlEditor port does not currently support script parameter loading.
- The BlackbirdSql Editor settings in Visual Studio Options have been ported as is from the Microsoft SqlServer SqlEditor settings. This means that several options are not currently being used or are not applicable.
- If you have a huge number of triggers then rendering of the triggers in the SE, or any other collection for that matter, may take some time. This has nothing to do with the parser but is simply down to network and database server performance. To minimize the effect of this, Trigger/Generator linkage is built asynchronously as soon as a connection is established.
| |