Installation of the Active Query Builder 3 .NET Edition does not affect on the installation of the previous major version, so they can be installed simultaneously.

Active Query Builder 3 Professional Edition lets create your visual query building environment in two ways. 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 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 about while mgrating 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 splitted to three parts: ActiveQueryBuilder.Core.dll (non-visual SQL query engine), ActiveQueryBuilder.View.dll (UI controllers) and separate libraries for each platform and UI controls library: ActiveQueryBuilder.View.Winforms.dll, ActiveQueryBuilder.View.Wpf.dll (there will be more assemblies of this family there: for DevExpress controls, may be for some of the Mono GUI toolkits, etc.).

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 of specifc 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 connection to database.

The new SqlQuery component implements SQL query building logic and contains the internal object representation of a query.

The SqlContext object could be shared among muptile SqlQuery objects which might be connected to different instances of visual query building UI controls in their turn. This way the programmer can easily implement multi-document interface to build several SQL queries in separate windows.


The PlainTextSQLBuilder component has been deleted. It's functionality has been embedded in the QueryBuilder component. The new QueryBuilder.SQLFormattingOptions group of properties has beed added to setup 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 case of using Alternate Names or Virtual Objects), you can create a separate instance of SqlFormattingOptions or SqlGenerationObjects and get SQL text as descrbed in this article.


  • The OfflineMode property has been moved to the QueryBuilder.MetadataLoadingOptions group.
  • The QueryStructureTreeOptions property has been temprarily deleted as the Query Structure Tree is not implemented yet in the current beta version of AQB 3.
  • 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 SubQueryTabsVisible property has been replaced by the QueryNavigationBarVisible.


QueryBuilder and SqlBuilder properties have been replaced by the QueryProvider property. You can assign an instance of the QueryBuilder or SqlQuery object to this property.


QueryBuilder and SyntaxProvider properties have been replaced by the QueryProvider property. You can assign an instance of the QueryBuilder or SqlQuery object to this property.

Is this article helpful for you?