Einzelnen Beitrag anzeigen

bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.123 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Migrationstool gesucht

  Alt 28. Sep 2020, 14:03
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}

Geändert von bernhard_LA (28. Sep 2020 um 14:18 Uhr)
  Mit Zitat antworten Zitat