procedure  appendfield;  
var  Ffield:Tfield;  
dsname:Tdataset;  
begin  
dsname:=dm.Luptest;  
 with  dm.Luptest  do  
   begin  
       with  TField.Create(dm.Luptest)  do  
         begin  
           Name:='field1';  
           FieldName  :=  'field1';  
           FieldKind  :=fkdata  ; 
           size:=10; 
           SetFieldType(ftString);  
           index  :=  DSName.FieldCount;  
           DataSet  :=  DSName;  
           DSName.FieldDefs.Update;  
       end;    
           dm.Luptest.Fields.Add(Ffield);  
   end;  
end;  
添加出错,请指教如何动态添加字段!谢谢

解决方案 »

  1.   

    例子
    function TReadInfofrm.SelectText(TsEmpID,OrderType,TsTime:string): string;
    var
      //i:Integer;
      TempText:string;
    begin
       with adoWarning do
       begin
          Open;
          if FieldbyName('Scondition').AsString='' then
             TempText:='select * from EmployeesInfo'
          else
             TempText:=FieldbyName('Scondition').AsString;
        {  showmessage(TempText)
          if FieldbyName('TsEmpID').AsString<>'' then
             TempText:=TempText+' and TemName='''+TsEmpID+'''';
             showmessage(TempText);
          if FieldbyName('OrdType').AsString<>'' then
             TempText:=TempText+' and OrderType='''+OrderType+'''';
             showmessage(TempText);
          if FieldbyName('TsTime').AsString<>'' then
             TempText:=TempText+' and TsTime='''+TsTime+'''';
             showmessage(TempText);  }
        end;
      Result:=TempText;
    end; 
      

  2.   

    用SQL语句啊.
      里面专门有一个添加字段的功能..很简单