首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

ADOQUERY 的动态参数 获取SQL话语

2013-08-01 
ADOQUERY 的动态参数 获取SQL语句with ADOQuery1 dobeginCloseSQL.ClearSQL.Text:update table1 set s

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;

热点排行