Installation of the Active Query Builder 3 .NET Edition does not affect the installation of the previous major version so that they can be installed simultaneously.
Active Query Builder 3 Professional Edition lets create your visual query building environment in two ways. The first way is to use the all-in-one QueryBuilder control that has all the necessary means to build SQL queries visually. This way is identical to what we had in the version 2.x, and hopefully, it is suitable for the majority of the users. Those users who want to customize visual query building interface deeper should have a look at the separated controls mode, described in another article. This article describes the main changes in code that you need to take care of while migrating from AQB 2.x to AQB 3 in standard mode.
The "ActiveDatabaseSoftware." assembly prefix has been removed, all Active Query Builder assembly names now start with the "ActiveQueryBuilder." prefix.
The ActiveDatabaseSoftware.ActiveQueryBuilder2.dll assembly doesn't exist anymore. It has been split into three parts: ActiveQueryBuilder.Core.dll (non-visual SQL query engine), ActiveQueryBuilder.View.dll (UI controllers) and separate libraries for each platform and UI control library: ActiveQueryBuilder.View.Winforms.dll, ActiveQueryBuilder.View.Wpf.dll.
New Non-visual components
There are two new non-visual components you should use if you don't need to build SQL queries visually, but only need to parse, analyze and modify SQL queries. They also must be created to work in the Separated controls UI mode.
The new SqlContext component implements the SQL parsing, and SQL text generation logic holds the link to Syntax Provider object that determines SQL syntax rules for specific SQL dialect. It also contains the MetadataContainer and MetadataStructure objects to store information about database schema and holds the link to Metadata Provider object that establishes a connection to the database.
The SqlContext object could be shared among multiple SqlQuery objects which may be connected to different instances of visual query building UI controls in their turn. This way the programmer can quickly implement a multi-document interface to build several SQL queries in separate windows.
The new SqlQuery component implements SQL query building logic and contains the internal object representation of a query.
The property to get access to the query object model QueryBuilder.Query doesn't exist anymore. It has been moved to the SqlQuery.QueryRoot property.
The PlainTextSQLBuilder component has been deleted. Its functionality has been embedded in the QueryBuilder component. The new QueryBuilder.SQLFormattingOptions group of properties has been added to set up the rules of result SQL query text formatting. The new QueryBuilder FormattedSQL property returns formatted SQL query text.
If you need more than one set of SQL generation and formatting properties (in the case of using Alternate Names or Virtual Objects), you can create a separate instance of SqlFormattingOptions or SqlGenerationObjects and get SQL text as described in this article.
- The OfflineMode property has been moved to the QueryBuilder.MetadataLoadingOptions group.
- The QueryStructureTreeOptions property has been deleted as the Query Structure Tree is replaced with the query and sub-query navigation bars.
- The AddObjectFormOptions property has been renamed to AddObjectDialogOptions.
- The DatabaseSchemaTreeOptions has been renamed to DatabaseSchemaViewOptions.
- The SQLGenerationOptions.QuoteAllIdentifiers boolean property has been replaced by the SQLGenerationOptions.QuoteIdentifiers that accepts three values: None, All and IfNeeded (default).
- The LeftTreePaneVisible, RightTreePaneVisible and SwapTrees properties have been deleted.
- The UnionNavBarVisible property has been deleted. The functionality of the Union Navigation Bar is moved to the Query Navigation Bar.
- The QueryNavigationBarVisible has replaced the SubQueryTabsVisible property.
The QueryProvider property has replaced the QueryBuilder and SqlBuilder properties. You can assign an instance of the QueryBuilder or SqlQuery object to this property.
The QueryProvider property has replaced the QueryBuilder and SyntaxProvider properties. You can assign an instance of the QueryBuilder or SqlQuery object to this property.