刚接触三层结构的系统,还不太会用这个TClientDataSet,我现在想用一个树型结构实现我的数据筛选,但不知道是方法不对还是语句有误,希望大虾们能指点一下.
另外有没有TClientDataSet这方面的资料,给我点可以吗?网上找了好久,没找着个全一点的.procedure TFrm_Bi_EmploInfo.TreeView1Change(Sender: TObject;
  Node: TTreeNode);
 var
  ID:Integer;
begin
  inherited;   if Treeview1.Selected.Level=0 then
     begin
      Abort;
     end
   else
    ID:=strtoInt(Treeview1.Selected.Text);
    CDS_InfoBase.Filtered := false;         //CDS_InfoBase为TClientDataSet
    CDS_InfoBase.Filter   := 'EmpTypeID = 'ID' '; //这里的引号弄得我头晕,试了好几种都不行,包括'+ID+'
    //CDS_InfoBase.Params.ParamByName('a').Value:=ID;//这里是想换一下动态传值,可惜也是不行.
    CDS_InfoBase.Filtered := true;
  
    //注:EmpTypeID数据类型是Int
 
end;
用CDS_InfoBase.Params.ParamByName('a').Value:=ID;报错是a没有找到.谢谢各位大虾了~~~用CDS_InfoBase.Filter   := 'EmpTypeID = 'ID' ';  报错是Field 'ID'Not Found.

解决方案 »

  1.   

    CDS_InfoBase.Filter := ' EmpTypeID = ' + IntToStr(ID);
    或者
    CDS_InfoBase.Params.ParamByName('EmpTypeID').Value:= ID;
     
      

  2.   

    CDS_InfoBase.Filter:= 'EmpTypeID = '+Treeview1.Selected.Text+'';
      

  3.   

    哇,可以了.mantti 的第一个方法可以实现,第二个不行.hongqi162 的方法可以实现.To hongqi162 :怎么数据类型是整形的,传一个字符型的参数进去也可以执行??Treeview1.Selected.Text这不是一个字符型吗?另外两位有没有TClientDataSet这方面的资料或者教程呢??18:00结帖~~
      

  4.   

    SQL语句本来就是字符型的,所以必须用字符串形式写sql,sql命令传递给sql server后,会自动匹配的至于资料嘛,可以看看delphi的MIDAS的Demo,也可以看看李维的Delphi 5.x 分布式多层应用电子商务篇  
      

  5.   

    直接CDS_InfoBase.Filter:= 'EmpTypeID = '+inttostr(ID);就行了