譬如,数据库里有。字段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显示出来。
在一个from里自动创建。
按 A B
C D
E F 排列。如何自动在delphi上对数据库添加字段G。H 。 SQL SERVER2000 +DELPHI6+WIN2000SERVER麻烦各位大虾了,,A,B,C,D,E,F,G,要在form中显示出来。用label。caption显示出来。
use database
ALTER TABLE tablename ADD G VARCHAR(20) NULL,H varChar(20) null
var
label1: tlabel;
begin
label1 := tlabel.Create(self);
label1.Caption := '12121212';
label1.Left := 100;
label1.Top := 100;
label1.parent := form2;
end;
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
问题基本上已经解决,就是自动创建的功能。
首先要判断有多少字段名,然后再创建多少个label,并且label的caption要是字段名,
因为后面还有 dbedit。也是自动创建的。
谢谢大家。。
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。
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;