Einzelnen Beitrag anzeigen

fillibuster

Registriert seit: 3. Nov 2010
Ort: Coesfeld
245 Beiträge
 
Delphi 2010 Professional
 
#1

Problem mit dynamischem Array of Record

  Alt 3. Dez 2010, 12:55
Hallo,

ich erstelle so ein dynamisches Array of Record:
Delphi-Quellcode:
function Tdata.getCatalog(inList : TStringList) : TDocxDocument;
var
  i : integer;
  reval : TDocxDocument;
begin
  if workQuery.Active then WorkQuery.Active := false;
  workQuery.SQL.Clear;
  workQuery.SQL.Add('SELECT ass.level, ass.article_id, art.name, art.number FROM ');
  workQuery.SQL.Add('assignments as ass JOIN articles as art ON ass.article_id=art.id WHERE ');
  workQuery.SQL.Add('ass.id=:id');
  for i := 0 to inlist.Count - 1 do
  begin
    workQuery.ParamByName('id').AsInteger := StrToInt(inList[i]);
    workQuery.Open;
    if not workQuery.IsEmpty then
    begin
      reval[i].level := workQuery.FieldByName('level').AsInteger;
      reval[i].article_id := workQuery.FieldByName('article_id').AsInteger;
      reval[i].article_name := workQuery.FieldByName('name').AsString;
      reval[i].article_number := workQuery.FieldByName('number').AsString;
    end;
    workQuery.Close;
  end;
  SetLength(reval,i);
  result := reval;
end;
Die Typen sind wie folgt deklariert:
Delphi-Quellcode:
type TDocxline = record
  level : integer;
  article_id : integer;
  article_number : string;
  article_name : string;
end;

type
  TDocxDocument = array of TDocxline;
Allerdings habe ich Probleme das zurückgegebene Array zu durchlaufen. Habe ich setLength richtig gesetzt?

Viele Grüße ...
  Mit Zitat antworten Zitat