AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbankzugriff

Ein Thema von hanspeter · begonnen am 12. Nov 2007 · letzter Beitrag vom 12. Nov 2007
Antwort Antwort
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Datenbankzugriff

  Alt 12. Nov 2007, 11:47
Datenbank: Firebird • Version: 2.0 • Zugriff über: Ibobjects
Hallo,
ich bin gerade dabei eine größere Anwendung von Paradox auf Firebird umzustellen.
Als Zugriffskomponente hatte ich mich eigentlich für FIBPLUS entschieden.
Jetzt hat aber der Auftraggeber den Wunsch geäußert auch andere Datenbanken
handeln zu können. Speziell hier Mysql,PostgreSQL, MS-Server.

Ich bin jetzt am Überlegen, wie ich der Anforderung gerecht werden kann.

Ich überlege jetzt IbDac von Corelab zu verwenden.
Wenn ich es richtig verstanden habe, sollte ein Austausch der Komponenten reichen,
um eine andere Datenbank zu bedienen.
Ich nehme mal an, das die Propertys der unterschiedlichen Varianten kompatibel sind?
Der Auftraggeber arbeitet noch mit Delphi 7 und plant vorerst auch kein Update.
Gibt es noch andere Varianten um durch Treiber- oder Komponententausch die Zieldatenbank
variabel zu halten?
Hat wer Erfahrung mit Anydac oder den Zugriffskomponenten von Remobjects?
Für einen Tip dankbar.

Gruß Peter
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Datenbankzugriff

  Alt 12. Nov 2007, 12:15
Zugriffskomponenten wie IBDac, ... kapseln nicht die SQL-Unterschiede. Dazu solltest du z.B. per Bridge-Pattern eine Zwischenschicht einbauen um DB-Eigenheiten schön in einer Unit/Klasse kapseln zu können.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Datenbankzugriff

  Alt 12. Nov 2007, 12:36
Zitat von Bernhard Geyer:
Zugriffskomponenten wie IBDac, ... kapseln nicht die SQL-Unterschiede. Dazu solltest du z.B. per Bridge-Pattern eine Zwischenschicht einbauen um DB-Eigenheiten schön in einer Unit/Klasse kapseln zu können.
Die Zwischenschicht habe ich eigentlich schon realisiert aber auf Fibplus-Basis.
Ich suche jetzt eine Möglichkeit mit vertretbaren Aufwand die Datenbank austauschen zu können.
Dabei geht es erst mal um das Aufzeigen der Möglichkeiten. Wenn ich dann die zusätzlichen Kosten der Entwicklung
vorrechne, wird sich an dem Wunsch sicherlich noch etwas ändern.
Ich selbst halte nicht viel von solchen Alroundlösungen, da man immer den kleinsten gemeinsamen Nenner suchen muss.
Bisher hatte ich noch keinen Fall, dass ein Kunde eine andere Datenbank fordert und wenn, dann ist das sicherlich
nicht billig.

Gruß Peter
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Datenbankzugriff

  Alt 12. Nov 2007, 14:12
Hallo,

schon beim Umstieg auf FIBPlus hättest die
den Aufwand machen sollen und bridge pattern benutzt.

Bsp mit abgeleiteten Klassen

Delphi-Quellcode:
type
  TBaseQuery=class
    function Open: Boolean; virtual; abstract;
  end;

type
  TPdxQuery=class(TBaseQuery)
    FQuery: TQuery;

    function Open: Boolean; override;
  end;

type
  TIBQuery=class(TBaseQuery)
    FQuery: TIBQuery;// oder was auch immer

    function Open: Boolean; override;
  end;

function CreateQuery: TBaseQuery;
begin
 {$IFDEF DB_IB}    // oder wie auch immer
  Result:= TIBQuery.Create(NIL);
 {$ENDIF}

 {$IFDEF DB_Pdx}    // oder wie auch immer
  Result:= TQuery.Create(NIL);
 {$ENDIF}
end;

Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz