读书人

在程序运行时动态添加ado字段有关问

发布时间: 2012-03-14 12:01:12 作者: rapoo

在程序运行时,动态添加ado字段问题,相当于在设计时的 add all fields
在程序运行时,动态添加ado字段问题,相当于在设计时的 add all fields 要怎么弄呀

[解决办法]
看不懂,请说具体一点

是表格或控件读取ADO的字段还是啥?

如果是表格那类,像DBGRID,只要DATASOURCE连上后,列放空就行,查询时,自动就跳出ADO的所有的列,不管列的数量有没变化。
要不就是先用控件的ADDFIELD,先看COLCOUNT是多少,然后加进去
[解决办法]
不是很理解。。。大约猜测你的意思是运行的时候就直接创建连接ado里面的东西
可以这样。。
procedure TForm1.FormCreate(Sender: TObject);
begin
//ado....
end
[解决办法]
不用添加

open之后列就存在了,可以用了
[解决办法]
Open的时候会自动获取列信息的
[解决办法]

引用楼主 gongqs 的帖子:
在程序运行时,动态添加ado字段问题,相当于在设计时的 add all fields 要怎么弄呀

[解决办法]
t:TField;
begin
t := TStringField.Create(Self);
t.FieldName := 'time';
AdoQuery1.Fields.Add(t);
end

TField查帮助查其他类型TDateTimeField 、TStringField等等
[解决办法]
Delphi(Pascal) code
    data.ADOQuery1.Close;    data.ADOQuery1.Connection:=data.ADOConnection1;    data.ADOQuery1.SQL.Clear;    data.ADOQuery1.SQL.Add('select * from Tzhk_sjdy_dsf');    data.ADOQuery1.Open;    i:=data.ADOQuery1.FieldList.IndexOf('zt');    if i<0 then    begin      data.ADOQuery1.Close;      data.ADOQuery1.Connection:=data.ADOConnection1;      data.ADOQuery1.SQL.Clear;      data.ADOQuery1.SQL.Add('alter table Tzhk_sjdy_dsf add zt int null');      data.ADOQuery1.ExecSQL;    end; 

读书人网 >.NET

热点推荐