在三层应用碰到了这个问题
我原来的两层种的QUERY 是这样的
 with query1 do
  begin
     close
     sql.add('SQL语句');
     parambyname('s_year').value:=s_year;
     parambyname('s_month').value:=s_month;
     parambyname('s_day').value:=s_day;
     open;
  end
  
现在改成 with dclientdata do
      请问如何使用类似parambyname的语句啊?
    ckientdata 好象不支持 parambyname吧

解决方案 »

  1.   

    with ClientDataSet do
    begin
      Params.ParamValues('s_year') := s_year;
      ...
    end;
      

  2.   

    对亚,是用Params类似于你用的
    应该是Params。Parambyname()
      

  3.   

    用clientdataset.commandtext不是更快!
      

  4.   

    ClientDataSet1.Params.ParamByName()
    或 ClientDataSet1.Params[i]
    或者直接用SQL语句吧,
      

  5.   

    你要是都在clientdataset中传sql那就不叫3层了。
    可以写到params里然后cds和dsp都有xxxParams事件,就可以处理了。
      

  6.   

    with ClientDataSet do
    begin
      commandtext:='sql语句';
      Params.ParamByName('s_year') := s_year;
      ...
      execute(open);
    end;
      

  7.   

    本人生平最不喜欢用参数,
    即然已经知道有这个参数,为何不重新组织SQL语句呢?
    在调用时直接把你的参数写入SQL语句再写到commandtext中,然后再更新多爽!