Wenn deine Schlüssel eine feste maximal Länge haben (sollten sie ja eigentlich) und diese Maximal-Länge nicht zu lang ist, würde es vielleicht lohnen das Feld mit Leerzeichen aufzufüllen.
Aus "4" würde dann "_________4" werden. Dann funktioniert auch das Sortieren wieder. Im besten Fall bietet dir dein
DBMS eine solchige Funktion an, die du dann einfach als Sortierkritierium mit übergibst.
IBQuery1.SQL.Text:='SELECT * FROM MYFIELED ORDER BY FILL_LEFT(' + SortColumn + ') ' + SortOrder;