Tool leider nicht, unser Vorschlag für best practise :
der Umstieg war bei uns der Weg zu einem größerem Refactoring unserer gesamten Code Basis (1.5 Mio Zeilen code .... ).
Der Umstieg von
VCL nach FMX ..... über compiler directiven {$framework_FMX} und {$framework_FMX} , die meisten unsere Units sehen dann in etwa so aus :
Delphi-Quellcode:
interface
uses
{$IFDEF FRAMEWORK_FMX}
FMX.Graphics,
UITypes,
{$ENDIF}
{$IFDEF FRAMEWORK_VCL}
Vcl.Graphics,
{$ENDIF}
einige Komponenten mit zu sehr unterschiedlichen Funktionen in
VCL und FMX dann durch eigene Ableitungen / Vererbungen mit Cross Plattform Feature ersetzt.
wenn die Framework Umstellung done, dann selbiges für die Datenbank-Austausch , in unserem Fall von
ADO nach Firedac .
Alle Datenbank Zugriffe hinter ein Interface gelegt und dann mit diesem Rezept beide Optionen implementiert.
Delphi-Quellcode:
///
/// define either ADO, FireDAC, BDE or ZEOS Framework
/// add other units below db section
///
{$IFDEF FRAMEWORK_FIREDAC}
///
/// Datenzugriff über FIREDAC : https://www.devart.com/unidac/
///
FireDAC.Stan.Intf,
FireDAC.Stan.Option,
FireDAC.Stan.Error,
FireDAC.UI.Intf,
FireDAC.Phys.Intf,
FireDAC.Stan.Def,
FireDAC.Stan.Pool,
FireDAC.Stan.Async,
FireDAC.Phys,
// FireDAC.VCLUI.Wait,
FireDAC.Stan.Param,
FireDAC.DatS,
FireDAC.DApt.Intf,
FireDAC.DApt,
FireDAC.Comp.Client,
// FireDAC.Phys.MSAccDef,
FireDAC.Phys.ODBCBase,
// FireDAC.Phys.MSAcc,
FireDAC.Comp.DataSet,
{$ENDIF}
{$IFDEF FRAMEWORK_ZEOS}
///
/// Datenzugriff über ZEOS : http://zeoslib.sourceforge.net/
///
ZDataset,
ZConnection,
ZTableEXT,
Data.DB,
ZClasstypes,
{$ENDIF}
{$IFDEF FRAMEWORK_BDE}
///
/// Datenzugriff über BDE, OBSOLETE - DO NOT USE !
///
DBTables,
{$ENDIF}
{$IFDEF FRAMEWORK_ADO}
///
/// Datenzugriff über Mircosoft ADO (active data objects)
///
ADODB,
unit_TADOTableEXT,
{$ENDIF}