Active Query Builder VCL and ActiveX Editions 1.17 released.
We're glad to announce the new minor version of Active Query Builder. You can download the newest version from the download page.
What's new in the Active Query Builder version 1.17?
The Select checkbox is checked automatically now on adding a new expression.
The numbers entered into condition for string fields are treated as literals now.
SQL queries that look like "select orders.orderId from orders o" are fixed now to "select o.orderId from orders o".
Grouping is set automatically now on specifying the aggregate for a column to avoid generation of non-valid SQL statements.
The "=TRUE" condition is set automatically on adding a logical expression now. Useful on adding the EXISTS expressions.
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.
OLE drag-and-drop of text items to design area and criteria grid is made.
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.
Oracle: The GetSchemasListOracle procedure returns only schemas which have accessible database objects now.
Nexus DB 3: Metadata fetching is made.
MySQL Query Properties form is redesigned.
MySQL: The [Default|DISTICTS|ALL] query options are added to the Query Properties dialog.
Language files are converted to UTF8. The component allows to read language files in both ANSI and UTF8 encoding now.
The new sample project is added to demonstrate how to replace all the WHERE clause or to append new condition string to the query.
Support of DevExpress ver.56 is made. (Package name renamings were made)
C++ Builder 6 support is reverted.
The new OnUserMessage 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.
The new properties are added to allow OLE drag'n'drop of text items to the Design Area and the Query Colums Grid:
OLEDragAndDrop and SelectListOptions.OLEDragAndDrop (set to true by default in the ActiveX Edition; false in the VCL Edition).
The new TacQueryBuilder.LinkOptions.CreateLinksByIdenticalFieldNames property is added.
It instructs the component to add links between objects by identical field names automatically
(might be helpful for legacy databases without foreign keys).
The new TacQueryBuilder.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 property is made to define formatting rules of CTE sub-queries independently from derived tables.
VCL Edition: TacSQLBuilder.CTESubQueryFormat; ActiveX Edition: ActiveQueryBuilderX.SQLFormatCTE.
The new property TacMetadataContainer.LoadInvertedRelations is added to get relations assigned to the detail table instead of master table while loading metadata.
New events OnAfterCreateControl and OnBeforeDestroyControl are added.
You can use them for additional customization of the query builder UI controls.
The new properties are added to TacQueryBuilder.FieldsListOptions group: the HideAsteriskItem allows to remove the asterisk item from the field lists;
the SelectAllFieldsByDefault instructs the component to check all fields of a datasource on adding it to the query building area.
The new AParam.CompletionsList property in OnCustomExpressionBuilder event is added to get access to the list of datasource columns of the currently active sub-query.
ObjectMetadataLoading and ObjectMetadataLoaded events were not fired in offline mode. Fixed now.
The new method TacUnionSubQuery.AddLinksFromExpression() is added for manual adding of links with complex joining expressions.
The new TacQueryBuilder.OnActiveUnionSubQueryChanged 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!