Convert Template BDE to ADO

Currently when DADE is used to create dataviews, the DatabaseName is stored as part of the query definition. (This is consistent with Delphi’s approach to specifying a database connection for a Query object).

When you created the reports originally, the daDBBDE.pas BDE DADE plugin was used. Now you want to use ADO. You’ve already changed the Designer.Datasettings but this had no effect on the old reports. They still try to use the BDE connection. Changing the Designer.DAtaSettings only works for new dataviews that are created, because the new query dataviews are using the daADO.pas ADO DADE plugin.

In order to convert the templates from BDE to ADO, at the minimum you have to change the database name and the DADE plugin class names that are stored in the templates. When a BDE dataview is created, its class type is a TdaBDEQueryDataview. When an ADO dataview is created, its class type is TdaADOQueryDataview. These class types are stored in the template. These have to be changed before the template is loaded into a report.

First, compare a BDE report template to an ADO report template which both connect to the same database table. Save a BDE and an ADO based report template to separate ASCII text files. Now compare the dataview definitions. Change the TdaBDEQueryDataview class name to TdaADOQueryDataview in the BDE template. Change the BDE alias to your ADOConnection object. Then compare the table name and field names of the BDE template to the ADO template and change them accordingly, removing the .db extension on the table name is necessary. Now load the converted BDE template in your ADO end user application.

The first step is to make a backup of all your templates before continuing with a programatic approach. You can convert the templates programatically by loading the ASCII template files to a TStringList object. Then loop through the lines of the list and change the text programatically. You can loop through the files in a directory using ppFileUtils.pas calling the GetFileNamesForDirectory procedure to load the file names.

If you have binary report templates, you’ll also be able to convert these with an extra couple of steps. You can load the binary template file into ASCII format, modify it, and then save it back to binary as shown in the example links below. Keep in mind the conversion is performed without loading the report template into a TppReport.

This example shows how to load reports stored to the ReportExplorer database tables and convert them to ascii text.

This example shows how to convert an .rtm file to asii text