使用delphi从sql查询中解析params

Sal*_*dor 3 delphi delphi-7

我如何使用delphi从SQL查询中解析和提取参数?

例如:

从这个查询

SELECT * FROM MyTable 
WHERE Field1=:Param1 
AND Field2=:Param2 
AND (Field3=:Param3 OR Field4=:Param4)
Run Code Online (Sandbox Code Playgroud)

我想获得

Param1 Param2 Param3 Param4

提前致谢.

RRU*_*RUZ 10

@Salvador,你可以使用TParams.ParseSQL函数来获取参数.

看到这个简单的代码

program Project241;

{$APPTYPE CONSOLE}

uses
  db, //for use TParams
  Classes,// 
  SysUtils;

procedure GetParamsFromSQL(SQL:string;Const ListParams:TStrings);
var
  ParamList: TParams;
  i: integer;
begin
 ListParams.Clear;//Clear the list
    ParamList := TParams.Create(nil);
    try
      ParamList.ParseSQL(SQL, True); //Force to create the params from the SQL
      for i := 0 to ParamList.Count - 1 do 
        ListParams.Add(ParamList[i].Name);
    finally
    ParamList.Free;
    end;
end;

var
  ParamList : TStrings;
begin
  ParamList:=TStringList.Create;
  try
    GetParamsFromSQL('SELECT * FROM MyTable WHERE Field1=:Param1 AND Field2=:Param2 AND (Field3=:Param3 OR Field4=:Param4)',ParamList);
    Writeln(ParamList.text);
    Readln;
  finally
  ParamList.Free;
  end;
end.
Run Code Online (Sandbox Code Playgroud)

回报:

Param1
Param2
Param3
Param4
Run Code Online (Sandbox Code Playgroud)

  • 非常好!我不知道有没有.+1 (2认同)