譬如,数据库里有。字段A,B,C,D,E,F,
在一个from里自动创建。
按  A   B 
    C   D 
    E   F 排列。如何自动在delphi上对数据库添加字段G。H 。 SQL SERVER2000 +DELPHI6+WIN2000SERVER麻烦各位大虾了,,A,B,C,D,E,F,G,要在form中显示出来。用label。caption显示出来。

解决方案 »

  1.   

    用sql语句实现
    use database
    ALTER TABLE tablename ADD G VARCHAR(20) NULL,H varChar(20) null
      

  2.   

    label1.caption := adoquery.fieldbyname('A').fieldname;
      

  3.   

    那个自动创建我的会的。关键是创建的字段要用label的caption显示在出来。
      

  4.   

    procedure TForm2.Button1Click(Sender: TObject);
    var
        label1: tlabel;
    begin
        label1 := tlabel.Create(self);
        label1.Caption := '12121212';
        label1.Left := 100;
        label1.Top := 100;
        label1.parent := form2;
    end;
      

  5.   

    ADOQuery1.Connection := '...';
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('ALTER TABLE table_name ADD G VARCHAR(20) NULL,H VARCHAR(20) null');
      ADOQuery1.ExecSQL;
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('SELECT * FROM table_name ');
      ADOQuery1.Open;
      Label1.Caption := ADOQuery1.Fields[0].AsString;  //A
      Label2.Caption := ADOQuery1.Fields[1].AsString;  //B
      Label3.Caption := ADOQuery1.Fields[2].AsString;  //C
      Label4.Caption := ADOQuery1.Fields[3].AsString;  //D
      Label5.Caption := ADOQuery1.Fields[4].AsString;  //E
      Label6.Caption := ADOQuery1.Fields[5].AsString;  //F
      Label7.Caption := ADOQuery1.Fields[6].AsString;  //G
      Label8.Caption := ADOQuery1.Fields[7].AsString;  //H
      

  6.   

    你的ABCD..应该只是显示当前的数据库中的记录吧。然后 再上一个 下一个。。 也很简单呀主要就是注意一下 这些控件的位置 摆放 就OK了
      

  7.   

    很感谢各位大侠的回答。
       
        问题基本上已经解决,就是自动创建的功能。
       首先要判断有多少字段名,然后再创建多少个label,并且label的caption要是字段名,
       因为后面还有 dbedit。也是自动创建的。
       谢谢大家。。
      

  8.   

    procedure TForm1.Button1Click(Sender: TObject);
    var i: Integer;
    begin
      Table1.First;
      for i := 0 to Table1.RecordCount - 1 do
      begin
        with TLabel.Create(Self) do
        begin
          Parent := Self;
          Top := i * 20;
          Left := 20;
          Caption := Table1['City']; //数据库为DBDEMOS,表为custoly.db
        end;
        Table1.Next;
      end;
    end;关于位置,要加两个个变量,然后用mod来判断逐渐增加Top属性已经调整Left属性,具体你自己做吧!
    当然,最好用TList来做,用完后要释放创建的Label。
      

  9.   

    var
      Label1:TLabel;
      DBEDIT1:TDbEdit;
      I:Integer;(假设窗体为FORM1)ADOQuery1.Connection := '...';
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('ALTER TABLE table_name ADD G VARCHAR(20) NULL,H VARCHAR(20) null');
      ADOQuery1.ExecSQL;
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('SELECT * FROM table_name ');
      ADOQuery1.Open;
      For I:=0 To AdoQuery1.Fields.count-1 Do
      Begn
        Label1:=TLabel.create(Application);
        Label1.Caption:=AdoQuery1.Fields[I].FieldName;
        Label1.paret:=Form1;
        DbEdit1:=TDbEdit.Create(Application);
        DbEdit1.DataSource.DataSet:=AdoQuery1;
        DbEdit1.Fields.AsString:=AdoQuery1.Fields[I].AsString;
        DbEdit1.Paret:=Label1.paret;
      End;