Hi,
ich verstehe nur Bahnhof - liegt das jetzt an mir?
Du hast Datenpaare (Integer, String), die du über zwei SELECT Statements besorgst, wobei du die ORDER Klausel nicht verwenden kannst und die Informationen auch nicht durch einen JOIN in einer einzigen Abfrage beschafft werden können (strange). Ich denke hier sollten wir ansetzen, aber ohne Betrachtung der Genese können wir auch einfach die Daten akzeptieren. Eine Speicherung in zwei verschiedenen Arrays ist nicht nötig. Du könntest die Daten z.B. in einer StringList speichern:
Delphi-Quellcode:
function CompareObject(list: TStringList; index1, index2: Integer): Integer;
begin
index1 := Integer(list.Objects[index1]);
index2 := Integer(list.Objects[index2]);
Result := index1 - index2;
end;
var
sl: TStringList;
s:
String;
i, iZahl: Integer;
begin
sl := TStringList.Create;
// Daten besorgen
for i := 1
to Query.RecordCount
do
begin
s := FieldByName('
DeinString').AsString,
iZahl := FieldByName('
DeineInteger').AsInteger;
sl.AddObject(s, Pointer(iZahl));
end;
sl.CustomSort(CompareObject);
// Daten verwerten
sl.Free;
end;
Grüße vom marabu