Einzelnen Beitrag anzeigen

Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
673 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Connection übergeben verschiedene Datenbanken

  Alt 13. Aug 2020, 08:21
Ich sehe nicht viel Sinn drin, da es ja Sachen wie FireDAC oder UniDAC gibt, aber sei es drum...

Man kann auch für jede Art Verbindung eine Klasse bilden, welche die wichtigen Funktionen, die man so nutzt hinter einem gemeinsamen interface kapselt.

Code:
Type IdbConnection = interface
       procedure Connect(AConnectionStr: String);
       procedure CreateQuery: IdbQuery; // liefert ein interface zu einem query passend zur connection
       // mehr funktionen hier
     end;
     
     TUniDACConnection = class(TInterfaceObject, IdbConnection)
     private
       FDbObject: TUniConnection;
     public
       procedure Connect(AConnectionStr: String);
       procedure CreateQuery: IdbQuery;
     end;

     TFireDACConnection= class(TInterfaceObject, IdbConnection)
     private
       FDbObject: TUniConnection;
     public
       procedure Connect(AConnectionStr: String);
       procedure CreateQuery: IdbQuery;
     end;
Muss man natürlich die einzelnen Funktionen, die man so braucht auch extra implementieren, aber naja, so auf die schnelle fällt mir da nichts anderes ein. Damit kannst wohl alles machen, was du brauchst.
Ich würde vielleicht noch eine ConnectionFactory dazubauen, denen gibst Du den Namen des Datenbank-Profils und der baut dir die connection zusammen mit den Parametern des Profils (DBName, Login, zusätzliche Connect-Params...)
  Mit Zitat antworten Zitat