解决方案 »

  1.   

    顶一下,,
    如何获取,最终执行的SQL 
    'SELECT * FROM TEST WHERE ID=1001';
      

  2.   

    ClientDataSet1 打开后不是就执行了你的语句么? 你直接使用dataset不就可以了吗
      

  3.   


    var
      i:integer;
      sqlstr:string;
    begin
      cds1.Close;
      cds1.CommandText :='SELECT * FROM test WHERE ID=:TID and  Code=:Code';
      cds1.Params.ParamByName('TID').AsInteger:=1001;
      cds1.Params.ParamByName('Code').AsString:= '5668';
      sqlstr:=cds1.CommandText;
      for i:=0 to cds1.Params.Count-1 do
      begin
        if cds1.Params.Items[i].DataType in [ftString,ftMemo]  then //根据数据类型 自己再修改一下
          sqlstr:=StringReplace(sqlstr,':'+cds1.Params.Items[i].Name,QuotedStr(cds1.Params.Items[i].Value),[rfReplaceAll])
        else
         sqlstr:=StringReplace(sqlstr,':'+cds1.Params.Items[i].Name,cds1.Params.Items[i].Value,[rfReplaceAll]);
      end;
       mmo1.Text:=sqlstr;
      cds1.Open;
    end;试试这个 循环可以的
      

  4.   

    非常感谢 gykthh 非常感谢你的代码,好用