Einzelnen Beitrag anzeigen

DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#5

Re: Datenbank-Felder in Array

  Alt 11. Aug 2006, 11:37
Ich denke, durch die Verwendung von Arrays wird es eher mehr Schreib- und Pflegeaufwand.

Wie wäre es mit den OnGetText/OnSetText Events?

Ansonsten könntest Du folgendes machen:

Delphi-Quellcode:
type
  TMeinFeld = record
    Feld: string;
    Wert: string; // oder Variant;
  end;

...

public/private
  MeinArray: array of TMeinFeld;
Dann:

Delphi-Quellcode:
procedure TForm1.ReadShopdaten;
var i: integer;
begin

  SetLength(MeinArray,Query.Fields.Count);

  for i:=0 to Query.Fields.Count-1 do
  begin
    
    MeinArray[i].Feld := Query.Fields[i].FieldName;
    MeinArray[i].Wert := Query.Fields[i].AsString;

  end;

end;
So könntest Du die Werte in die DB schreiben:

Delphi-Quellcode:
procedure TForm1.WriteShopdaten;
var i: integer;
begin

  for i:=0 to High(MeinArray) do
  begin
    
    Query.FieldByName(MeinArray[i].Feld).AsString := MeinArray[i].Wert;

  end;

end;
Wenn Du ein Feld suchst wieder mit ner for-Schleife durchsuchen:

Delphi-Quellcode:
  for i:=0 to High(MeinArray) do
  begin
    
    if MeinArray[i].Feld = GesuchtesFeld then
    begin
      
      ... // z.B. Wert lesen oder schreiben
      break;

    end;

  end;

Das ganze ist aber meiner Meinung nach mehr Schreibaufwand, da Du praktisch einen Teil der Query nachprogrammierst.


Grüsse
...Doc
  Mit Zitat antworten Zitat