用SQL。你是什么数据库?
procedure TForm1.Button3Click(Sender: TObject);
var
  InputStr: string;
begin
  InPutstr := InputBox('输入要增加的字段名', 'Field:', '');
  if Trim(Inputstr) = '' then Exit;
  Query1.DisableControls;
  Query1.close;
  Query1.requestlive := True;
  Query1.SQL.Clear;
  Query1.SQL.Add('ALTER TABLE DynicPara add Column '+InputStr+' char(10)');
  Query1.ExecSQL;
  Query1.requestlive := False;
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select * from DynicPara');
  Query1.Open;
  Query1.EnableControls;
  qAddItems;
end;
DynicPara是别名。
大致如此,可以你自己改改用。

解决方案 »

  1.   

    char(10) 是字段的类型和长度。
      

  2.   

    //add by czf 0518 //检测相关表中是否存在某字段
    function IsExistColumn(sTableName :string ;sColumnName :string):Boolean;
    var
       sSql :string;
       iTableId :integer;
    begin
        sSql :='Select * from sysobjects where name='''+trim(sTableName)+'''';
        query.close;
        query.sql.clear;
        query.sql.add(sSql);
        if not query.IsEmpty then
            begin
                iTableId :=query.fieldbyname('id').AsInteger;
                sSql :='select * from syscolumns where id =' +IntToStr(iTableId)+' and name='''+trim(sColumnName)+'''';
                query.close;
                query.sql.clear;
                query.sql.add(sSql);
                if not query.IsEmpty then
                   begin
                       Result :=true;
                   end
                else
                   begin
                       Result :=false;
                   end;
            end
        else
            begin
                Result :=false;
            end;
    end;//add by czf 0518 //在相关表中新增相应字段
    function AddNewColumn(sTableName :string ;sColumnName :string; sColumnTypeStr:string):Boolean;
    var
        sSql :string;
    begin
        sSql :='alter table '+trim(sTableName)+' add '+trim(sColumnName)+' '+trim(sColumnTypeStr);
        if ExecQuery(query,sSql) then
           begin
               Result :=true;
           end
        else
           begin
               Result :=false; 
           end;
    end;function ExecQuery(query:TADOQuery;SqlStr:string):boolean;
    begin
        query.close;
        query.sql.clear;
        query.sql.add(sqlstr);
        try
          query.ExecSQL;
        except
          ShowMessage('执行'+query.name+'出错,sql语句为:'+sqlstr);
          result := false;
          exit;
        end;
        result := true;
    end;