Einzelnen Beitrag anzeigen

fapsons

Registriert seit: 29. Jan 2007
Ort: Berlin
65 Beiträge
 
#1

Klasse in einer TList wird immer überschrieben

  Alt 16. Mär 2007, 08:32
Hallo Leute,

ich weiß, mein Posting beinhaltet sehr viel Quellcode, aber das Problem ist, dass ich nicht genau weiß, an welcher Stelle ich einen Fehler gemacht habe.

Und zwar lese ich Kundendaten aus einer Datenbank aus. Diese sollen in die Klasse CustomerTerminal geschrieben werden. Alle einzelnen CustomerTerminals von allen Kunden sollen dann wiederum in die TList (LCustomerTerminal) geschrieben werden.

Beim Durchlauf der beiden Proceduren, die eigentlich genau das bezwecken sollten erhalten jedoch alle CustomerTerminals der TList die Werte des letzten CustomerTerminals aus der TList.

Führe wahrscheinlich den Add Befehl für die TList an der falschen Stelle aus oder so, jedenfalls komme ich selber nicht darauf, was ich genau falsch mache...
Ich hoffe, ihr könnt mir folgen .

Danke schon mal!

Gruß,
-fapsons--



Delphi-Quellcode:
Unit DBInterface;
...

procedure Get_Customer_Terminals; // Kundenterminals von allen Kunden der DB werden ausgelesen
var TEID, TMID, VSID, Syst, Knot :Integer;
    Bez, Beschr, Typ, IP_A, Schnitts, Firmbez,FirmW, TermProg, KartTyp, Zubeh:String;
begin

 with D_DataModule.DataSet do
 begin
     SelectSQL.Clear;
     SelectSQL.Text := 'select * from V_CUSTOMER_TERMINALS v where v.vsid = ''' + (inttostr(reg.Versions_ID)) + '''';
     Open;
 end;

 while not D_DataModule.DataSet.Eof do
 begin
   TEID := D_DataModule.DataSet.FieldByName('TEID').AsInteger;
   TMID := D_DataModule.DataSet.FieldByName('TMID').AsInteger;
   ...
   Zubeh := D_DataModule.dataset.FieldByName('ZUBEH').value;

   reg.Add_Cust_Terminal(Bez + Beschr + Typ,TMID, VSID, Syst, Knot, Schnitts, IP_A, Firmbez, FirmW, TermProg, KartTyp, Zubeh);
   D_DataModule.DataSet.Next;

 end;

 D_DataModule.DataSet.Close;
end;



Unit DeclareTypes;
...
procedure TSoftwarePaket.Add_Cust_Terminal(TMNA1: String; TMID, VSID, Syst, Knot: Integer; Schnittst, IP, Firmenbez, Firmware, TermProg, KartTyp, Zubehoer: String);

begin
with CustomerTerminal do
   begin
      TMNA := TMNA1;
      TEID := TEID;
      ...
      Zubehoer := Zubehoer;
   end;
   LCustomerTerminal.Add(CustomerTerminal);
   ...
End;
  Mit Zitat antworten Zitat