![]() |
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
ok also könnte das so aussehen das ich vllt die kundenklasse im create veränder? und noch Buch name usw deklariere?
|
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
Das TKunde-Objekt benötigt in dem Fall eine TBuchliste-Property. Pseudocode:
Delphi-Quellcode:
procedure TKunde.GetBuecher;
begin Buchliste.SetFilter('Kunden_ID', ID); Buchliste.HoleDaten; end; |
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
Hallo...
unabhängig von deiner Frage sind mir ein paar Sachen aufgefallen... Beispiel für mehrere Stellen:
Delphi-Quellcode:
PS: Mach mal ReportMemoryLeaksOnShutdown an... aber erschrick nicht :stupid:
function TDataconnect.getKunden():TKundeList;
var Kunde : TKunde; KundeQuery : TIBOQuery; KundeTransa : TIBOTransaction; begin Result:= TKundeList.create(); // wird als Result erzeugt... wo gibst du die Liste wieder frei ? --> Speicherleck. Objekt als Rückgabewert ist immer schwierig... Nur mit dirty Tricks. KundeQuery:= TIBOQuery.Create(nil); // Wo gibst du die Query frei ? --> Speicherleck KundeQuery.SQL.Text:= 'SELECT * FROM KUNDEN '; KundeQuery.IB_Connection:= FDataBase; KundeTransa:= TIBOTRansaction.Create(nil); KundeTransa.IB_Connection:= FDataBase; KundeQuery.IB_Transaction:= KundeTransa; KundeTransa.StartTransaction(); // warum läßt du ein select Statment in einer Transaktion ablaufen ? try KundeQuery.Open(); while not KundeQuery.Eof do begin kunde:= TKunde.Create(KundeQuery.Fieldbyname('Kunden_ID').asInteger, KundeQuery.FieldbyName('Vorname').asString, KundeQuery.FieldbyName('nachname').AsString); Result.addkunde(Kunde); KundeQuery.Next(); end; KundeTransa.Commit(); // Was gibt es nach dem Durchlaufen der Query zu committen ? except on e:Exception do begin ShowMessage('FEHLER IN GETKUNDEN'); KundeTransa.Rollback(); // entsprechend dem Commit... end; end; end; |
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
Vielen Dank, werde mein Code nochmal ausbessern.
@DeddyH ich mach mich gleich mal ran an das umbauen @haentschman vielen dank, programmiere halt nicht so lange, was ich kann hab ich mir auch selbst beigebracht... desswegen mangelt es an Qualität xD werde es mir aber zu herzen nehmen und gleich ausbessern. |
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
also ich krieg das irgendwie mit dem FastLeakMemoryon... nicht hin.
Habe FastMM4 mir gerade geholt und das als erste unit in mein Projekt eingebunden. dann bin ich auf meine oberfläche und habe fastmm4 in uses teil gebracht. aber das fastleakmemoryon das kennts nich und jetzt? |
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
Das meinte ich nicht. FastMM ist in D2007 enthalten. Öffne den Quelltext deiner Projektdatei. Dann fügst du folgendes ein:
Delphi-Quellcode:
{$R *.res}
begin ReportMemoryLeaksOnShutdown:= True; // das einfügen Application.Initialize; // hier davor Application.MainFormOnTaskbar := True; . . . |
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
ok habs ;) danke
|
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
...und wie lang ist die Liste ? :lol: Erst wenn du das Fenster beim Programm beeenden nicht mehr bekommst ist alles gut.
|
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
Ich bin ehrlich verwirrt. Von welcher Delphi-Version reden wir denn eigentlich, D5, D7 oder D2007?
|
AW: 2 Units zusammenfassen in eine Untergeordnete Logikschicht
wir reden von D7 :D
4908 Bytes Leck OHNE EINloggen^^ also sprich wenn ich das prog schon vor dem einloggen schließe.. (keine kunden hinzugefügt usw) ^^ jetzt aber mal zum ursprünglichen thema.. ich habe ja UKunde UBuecher usw... und wenn ich das machen würde wie du es sagst DeddyH dann würde das nicht mehr ganz hinkommen: ich müsste ja prozeduren machen wie: TKunde.getbuecher und TBuch.getKunden... da komme ich schnell in kreisreferenzen.... ich baue jetzt ein Logisches Objekt: BSP LogischerKunde... dann getbuecher usw da rein... und der Tkunde greift auf den LogikKunden zu.. was haltet ihr davon? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 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