AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Dataset als Parameter mit OOP oder wie ?
Thema durchsuchen
Ansicht
Themen-Optionen

Dataset als Parameter mit OOP oder wie ?

Ein Thema von Hansa · begonnen am 14. Feb 2005 · letzter Beitrag vom 17. Feb 2005
Antwort Antwort
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#1

Re: Dataset als Parameter mit OOP oder wie ?

  Alt 15. Feb 2005, 13:05
Hi Hansa,


muss mich entschuldigen! Ich übergebe dem Konstruktor kein DataSet, sondern die Datenbankverbindung mittels der IBDatabase oder der IBTransaction:

also hier mal ein Beispiel (mit IBX, was aber nichts zur Sache tut):


Delphi-Quellcode:
type TDBObject=class(TObject)
     private
     protected
       iID:Int64;
       IBDataSet:TIBDataSet;
       sSQL, sSaveSQL:String;
       bSave, bExpicitTransaction:Boolean;
       Transaction:TIBTransaction;


       procedure SetSQLStatement; virtual;
       procedure SaveValues; virtual;
       procedure SelectValues; virtual; abstract;
       procedure SetValues; virtual;

     public
       constructor create(DefaultDataBase:TIBDataBase); overload;
       constructor create(DefaultTransaction:TIBTransaction); overload;

       procedure Free; virtual;

       procedure Save;

       property SaveDB:Boolean read bSave write bSave;
       property ID:Int64 read iID;
     end;
und hier die abgeleitete Klasse:

Delphi-Quellcode:
type TAdresse=class(TDBObject)
     private
       sName, sStrasse, sOrt, sTelefon, sFax, sAnrede, sTitel, sAnschrift:String;
     protected
       procedure SelectValues; override;
     public
       constructor create(DefaultDataBase:TIBDataBase; AdresseID:Int64);
       property Name:String read sName write sName;
       property Strasse:String read sStrasse write sStrasse;
       property Ort:String read sOrt write sOrt;
       property Telefon:String read sTelefon write sTelefon;
       property Fax:String read sFax write sFax;
       property Anrede:String read sAnrede write sAnrede;
       property Titel:String read sTitel write sTitel;
       property Anschrift:String read sAnschrift;
     end;
Im Konstruktor der Klasse TDBObject wird je nach aufgerufenen Konstruktor eine IBDataSet oder eine IBTransaction + IBDataSet erzeugt und natürlich beim Destruktor wieder freigegeben. Ich habe so einige Klassen erzeugt, teilweise auch mit Enkeln (wie nennt man das, wenn man eine Klasse ableitet und von dieser wieder ableitet?).

Die Übergabe der IBDataSet bzw. Transaction mache ich deshalb, um zum einen bei der IBDataset innerhalb der Klasse die Transaktionssteuerung zu machen, oder wenn ich die Transaction-Instanz übergebe wird die Transaktionssteuerung außerhalb der Klasse vorgenommen (wenn das Objekt der Klasse z.B. von einem anderen Objekt (z.B: Auftrag) aufgerufen wird).



Grüße
Lemmy
  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 21:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz