We're glad to announce the new version of Active Query Builder .NET Edition. You can download the newest version or request the trial at the download page.
What's new in the Active Query Builder .NET Edition version 1.15?
Behavior changes
The Select checkbox is checked automatically now on adding a new expression.
Grouping is set automatically now on specifying the aggregate for a column now.
The numbers entered into condition for string fields are treated as literals.
The "=TRUE" condition is set automatically on adding a logical expression now. Useful on adding the EXISTS expressions.
SQL Syntax changes
SQLite: The component can load foreign keys now.
SQLite: The list of aggregates and built-in functions is filled now.
MS SQL Server: Fetching metadata object descriptions from database is made.
MySQL Query Properties form is redesigned.
MySQL: The SELECT [DISTICT|ALL] options are added to the query properties dialog.
Other changes
Arabic (Saudi Arabia), Swedish and Turkish translations are added.
Spanish and Polish translations are updated.
Algorithm of automatic objects placement on the diagram pane is improved.
Memory consumption and performance optimizations are made, memory leaks are eliminated.
Reworked the control's initialization for better handling of late-bound events.
The multi-threading synchronization issue is fixed.
All forms are optimized for 120 DPI display setting.
Automatic alias assignment is made when user adds two or more columns with same name to the query.
The warning message is shown when muptiple columns with same name appear in sub-queries in result of user actions as this may lead to inconsistence in the calling sub-query.
API Changes
The new UserMessage event is added.
It is fired when the Query Builder is about to show the warning message to the user.
You may override this behavior by handling this event.
SQL text formatting options for CTE sub-queries are made (PlainTextSQLBuilder.CTESubQueryFormat).
The new LinkOptions.CreateWhereJoinsByDefault property is added.
Setting it to true instructs the component to create joins in WHERE clause instead of using ANSI joins.
Note that the ANSI joins still may be created if the user will make an OUTER JOIN.
For Oracle syntax, the component will create Oracle-style joins (+=, =+) except FULL OUTER JOIN.
The new LinkOptions.CreateLinksByIdenticalFieldNames property is added.
It instructs the component to add links between objects by identical field names (might be useful for legacy databases without foreign keys).
The new property FieldListOptions.CollapseExpandButtonLocation is added.
It allows you to specify the location of the Collapse/Expand button (at the top or bottom of each datasource).
Added new API method UnionSubQuery.AddLinksFromExpression() for manual adding of links with complex joining expressions.
The new events are added to ExpressionEditor and SqlTextEditor components to add and remove keywords and functions in suggestion lists: CustomizeKeywords and CustomizeFunctions.
New events ControlCreated and ControlDestroying are added.
You can use them for additional customization of the query builder UI controls. E.g., handle some control event on ControlCreated and unhandle it on ControlDestroying.
The new property FocusedDiagramObjectColor is added.
ExpressionEditor and SqlTextEditor: ScrollBarsAlwaysVisible property is added.
ObjectMetadataLoading and ObjectMetadataLoaded events were not fired in Offline mode. Fixed now.
The new ActiveUnionSubQueryChanged event is added.
We have been using Active Query Builder for over a year and must say that both the product and support have been outstanding!
We chose Active Query Builder due to its flexibility and features, but have been truly pleased by its power and hidden capabilities. ...
In summary Active Query Builder provides excellent components, great support and a very flexible feature set. It has allowed us to provide features to our end users that I did not think would be possible in the first release of our new tools and in a timeframe that was much shorter than planned. I would recommend that anyone dealing with databases in the .Net world should be aware of this component and its capabilities!