Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

Re: Verschiedene Datenbank Querys in einer Funktion benutzen

  Alt 27. Nov 2008, 21:07
Oder für auf die Schnelle mit Boardmitteln war dein Ansatz ja gar nicht so schlecht.

Also 2 Klassen bauen, die sich auf der Schnittstellenseite zu deinem Programm absolut identisch verhalten müssen (klar ) aber auf der DB-Seite natürlich je nach Dialekt reagieren sollen. Dabei sind reine SQL-Statements die keine Records liefern ja noch relativ harmlos. Allerdings wäre es wahrscheinlich besser nicht wirklich den Query (so wie in deinem Beispiel) als Parameter zu übergeben, sondern pro Funktionalität auch eine function/procedure (ähnlich den stored procedures) und dabei nur die Parameter übergeben.

Beispiel: Ein Datensatz soll gelöscht werden
Delphi-Quellcode:
// einmal für MSSQL
function TMSSQL.LoescheDatensatz( const RecordID : integer ) : boolean;
begin
  ...
end;

// und einmal für MYSQL
function TMYSQL.LoescheDatensatz( const RecordID : integer ) : boolean;
begin
  ...
end;
In dem Fall, dass du auch noch Daten haben möchtest, dann kannst du dir einfach das TDataset zurückgeben lassen:
Delphi-Quellcode:
// einmal für MSSQL
function TMSSQL.HoleDatensatz( const RecordID : integer; var Dataset : TDataset ) : boolean;
begin
  ...
end;

// und einmal für MYSQL
function TMYSQL.HoleDatensatz( const RecordID : integer; var Dataset : TDataset ) : boolean;
begin
  ...
end;
Eine komplette Abstraktion ist zwar insgesamt gesehen (vor allem bei wachsenden Projekten) besser (Pflege, Handhabung, Flexibilität, ...) aber man will ja klein anfangen und das hier ist dann nicht ganz soweit weg von dem, was du bis jetzt hast, aber schon etwas anders.

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat