Active Query Builder support area

Pre-sales questions / Subscription renewal

Avatar
  • updated

Today, I renewed AQB (Delphi) for another three years and then discovered that AQB for Delphi will probably no longer be maintained—I wanted it for Delphi 13 (Florence).

I am therefore somewhat disappointed, which everyone should know and bear in mind before renewing their support for AQB (Delphi) :-(

The latest version 1.36.2 (released on Nov 22, 2024) – no further improvements were made in 2025.

Avatar
Cicero A. Billo
Quote from Steve Bailey

AQB is a major feature in my Delphi project, so I risked buying the source code yesterday.

After some editing of the *.dpk and *.dproj files, I was able to manually install AQB into Delphi 13.

All the packages compiled at the first attempt - no issues at all.

That is a big relief for me. 

It is also nice to know that I should be able to install into any future version of Delphi.

Can you share steps to install AQB for Delphi 13, please? I'm trying, but no success. I have sources of 1.36.2 version and need to install it for Delphi 13. 

TIA

Avatar
Steve Bailey

It was reasonably straight forward - just a lot of files to edit.

Now I have to remember what I did!

On my system, I have:

  • C:\Users\Public\Documents\ActiveDBSoft\Packages\RadStudio12
  • C:\Users\Public\Documents\ActiveDBSoft\Packages\RadStudio12x64

These contain a large number of acQueryBuilder*D29.dpk and acQueryBuilder*D29.dproj files.

I created new folders for Delphi13:

  • C:\Users\Public\Documents\ActiveDBSoft\Packages\RadStudio13
  • C:\Users\Public\Documents\ActiveDBSoft\Packages\RadStudio13x64

I copied acQueryBuilder*D29.dpk and acQueryBuilder*D29.dproj into the new folders.

I then used PowerToys to bulk rename:

  • acQueryBuilder*D29.dpk to acQueryBuilder*D37.dpk
  • acQueryBuilder*D29.dproj to acQueryBuilder*D37.dproj

Then I opened all the dpk files in Notepad++ and did bulk search/replace, changing 'D29' to 'D37' in the package name and in the 'requires' section.

For example, in acCriteriaBuilderD37.dpk:

  • 'package acCriteriaBuilderD29;' was changed to 'package acCriteriaBuilderD37;'
  • 'requires acQueryBuilderD29' was changed to 'requires acQueryBuilderD37'

I manually supervised the search/replace (ie did not just click on 'Replace All') just in case there were any that should not be changed. I cannot honestly remember now if that was absolutely necessary!

Then I opened all the dproj files in Notepad++ and did bulk search/replace, changing 'D29' to 'D37' where necessary.

For example, in acCriteriaBuilderD37.dproj:

  '<MainSource>acCriteriaBuilderD29.dpk</MainSource>'
  became
  '<MainSource>acCriteriaBuilderD37.dpk</MainSource>'

  '<VersionInfoKeys Name="InternalName">acCriteriaBuilderD29</VersionInfoKeys'>
  became
  '<VersionInfoKeys Name="InternalName">acCriteriaBuilderD37</VersionInfoKeys'>

  '<VersionInfoKeys Name="OriginalFilename">acCriteriaBuilderD29.bpl</VersionInfoKeys>
  became
  <'VersionInfoKeys Name="OriginalFilename">acCriteriaBuilderD37.bpl</VersionInfoKeys'>

  '<Source Name="MainSource">acCriteriaBuilderD29.dpk</Source>'
  became
  <'Source Name="MainSource">acCriteriaBuilderD37.dpk</Source>'

Again, I manually supervised all of that.

Also, although I was editing files copied from RadStudio12 folders, I often found mention of 'RADStudio11'.
For example:
  <DCC_UnitSearchPath>..\..\Source;..\..\RADStudio11\$(Platform)\$(Config)</DCC_UnitSearchPath>
  <DCC_ResourcePath>..\..\Source;..\..\RADStudio11\$(Platform)\$(Config)</DCC_ResourcePath>
  <DCC_ObjPath>..\..\Source;..\..\RADStudio11\$(Platform)\$(Config)</DCC_ObjPath>
  <DCC_IncludePath>..\..\Source;..\..\RADStudio11\$(Platform)\$(Config)</DCC_IncludePath>
  <DCC_DcuOutput>..\..\RADStudio11\$(Platform)\$(Config)</DCC_DcuOutput>
  <DCC_ObjOutput>..\..\RADStudio11\$(Platform)\$(Config)</DCC_ObjOutput>
  <DCC_HppOutput>..\..\RADStudio11\$(Platform)\$(Config)</DCC_HppOutput>
  <DCC_DcpOutput>..\..\RADStudio11\$(Platform)\$(Config)</DCC_DcpOutput>
  <DCC_ExeOutput>..\..\RADStudio11\$(Platform)\$(Config)</DCC_ExeOutput>

So, I changed all these to:
  <DCC_UnitSearchPath>..\..\Source;..\..\RADStudio13\$(Platform)\$(Config)</DCC_UnitSearchPath>
  <DCC_ResourcePath>..\..\Source;..\..\RADStudio13\$(Platform)\$(Config)</DCC_ResourcePath>
  <DCC_ObjPath>..\..\Source;..\..\RADStudio13\$(Platform)\$(Config)</DCC_ObjPath>
  <DCC_IncludePath>..\..\Source;..\..\RADStudio13\$(Platform)\$(Config)</DCC_IncludePath>
  <DCC_DcuOutput>..\..\RADStudio13\$(Platform)\$(Config)</DCC_DcuOutput>
  <DCC_ObjOutput>..\..\RADStudio13\$(Platform)\$(Config)</DCC_ObjOutput>
  <DCC_HppOutput>..\..\RADStudio13\$(Platform)\$(Config)</DCC_HppOutput>
  <DCC_DcpOutput>..\..\RADStudio13\$(Platform)\$(Config)</DCC_DcpOutput>
  <DCC_ExeOutput>..\..\RADStudio13\$(Platform)\$(Config)</DCC_ExeOutput>

Then, in Delphi 13, I created a new project group (I called it 'AQBForDelphi13') and I added only the AQB projects that I needed (e.g. I needed acQueryBuilderFireDACD37, but did not bother with ones I don't need like acQueryBuilderUniDACD37).

Next, I did Build All on the project group - and it worked first time.
Finally, I right-clicked on each package and installed it.

I hope I have remembered all the steps correctly. Good luck!

(I typed this in Notepad++, but when I pasted it into this website, everything inside <angle brackets> was stripped out. I had to manually correct them. Also, it would not allow me to use some of the formatting commands. I hope it looks ok when you read it!)