AGB  ·  Datenschutz  ·  Impressum  







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

Getter wird übergangen

Ein Thema von Medium · begonnen am 17. Jun 2010 · letzter Beitrag vom 18. Jun 2010
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: Getter wird übergangen

  Alt 17. Jun 2010, 17:27
Wieso hast du denn ausschliesslich statische class-Methoden?
Das ist sehr unschön und damit verbaust du Dir alle Möglichkeiten für die Zukunft.
Die Klasse TDBUser sollte auf jeden Fall eine ganz normale Klasse sein; ungefähr so:
Delphi-Quellcode:
TDBUser = class
private
 FID: Integer;
 FName : string;
public
  property ID: Integer read FID;
  property Name: string read GetName write SetName;
  property LastLogon:TDateTime read FLastLogon;
end;
Die Funktion GetDBUserByLogin() sieht dann ungefähr so aus:
Delphi-Quellcode:
class function TDB.GetDBUserByLogin(aLogin: string): TDBUser;
begin
  Query.SQL.Text := 'SELECT id FROM users WHERE login=:lg';
  Query.ParamByName('lg').AsString := aLogin;
  Query.Open;
  if Query.IsEmpty {besser als RecordCount=0} then
  begin
    Query.Close;
    raise EUserDoesNotExistException.Create(aLogin {welcher user nicht existiert ist wichtig zu wissen});
  end;
  result := TDBUser.Create; // neues Obj erzeugen !
  result.ID := Query.FieldByName('id').AsInteger;
  result.Name := Query.FieldByName('Name').AsString;
  ....
  Query.Close;
end;
Der Aufrufer GetDBUserByLogin() muss dann das TDBUser-Objekt freigeben.
Falls Dir das nicht gefällt, kann man auch auf Interfaces ausweichen.
Damit werden die TDBUser-Objekte automatisch freigegeben (über die Referenzzählung).
Andreas
  Mit Zitat antworten Zitat
 


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 12: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