Für eine einfache Abfrage wie diese können Sie einen einfachen Textlesealgorithmus wie den folgenden erstellen. Es funktioniert für Ihre spezifische Abfrage, und es könnte "gut genug" sein. Geben Sie einfach eine leere TStringList ein.
uses
StrUtils;
procedure ExtractParams(input: string; output: TStrings);
var
colon, endpoint: integer;
begin
colon := pos(':', input);
while colon <> 0 do
begin
input := RightStr(input, length(input) - colon);
endpoint := 0;
repeat
inc(endpoint)
until input[endpoint] in [' ', ')']; //add other characters here as necessary
output.Add(LeftStr(input, endpoint - 1));
colon := pos(':', input);
end;
end;
Wenn Sie jedoch komplizierteres SQL-Parsing durchführen wollen, sollten Sie sich einen echten Parser ansehen. Werfen Sie einen Blick auf GOLD-Parser das auf der Grundlage von Sprachdefinitionsdateien mehrere verschiedene Sprachen, einschließlich SQL, analysieren kann. Auf der Website ist eine Delphi-Implementierung des Parsers verfügbar.