ADOQUERY 的动态参数 获取SQL语句
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='update table1 set sign=:Sign';
Parameters.ParamByName('Sign').Value:=Trim(Edit1.Text) ;
Memo1.Lines.Add(SQL.Text) ;
ExecSQL;
end;
现在抓取到的 SQL都是
update table1 set sign=:Sign
有没有方法抓取的SQL语句是有值的
update table1 set sign='1001'SQL Delphi
[解决办法]
写在ADOQuery1控件的BeforeOpen事件里面,下面只供你参考,更细致的地方需要你自己修改下。
procedure TfmMain.ADOQuery1BeforeOpen(DataSet: TDataSet);
var
i: integer;
s: string;
begin
s := ADOQuery1.SQL.Text;
for i := 0 to ADOQuery1.Parameters.Count - 1 do
begin
//if ADOQuery1.Parameters.Items[i].DataType = ftString then
s := StringReplace(s, ':' + ADOQuery1.Parameters.Items[i].Name, '''' + ADOQuery1.Parameters.Items[i].Value + '''', [rfReplaceAll, rfIgnoreCase]);
end;
ShowMessage(s);
end;