好着急:如何遍历无序号的数据表(SQL)(20分)

  • 主题发起人 主题发起人 sweetychild
  • 开始时间 开始时间
C是ADOCONNECTION
sqlorder:='select 字段一 from departs ';
form1.ADODataSet1.Recordset:=form1.c.Execute(sqlorder);
while not adodataset1.eof do
begin
st:=trim(form1.adodataset1.Field[0].Asstring);
duin.Items.Add(st);
end;
 
修改了一下,你看看
sqlorder:='select 字段一 from departs ';
form1.ADODataSet1.Recordset:=form1.c.Execute(sqlorder);
while not adodataset1.eof do
begin
st:=trim(form1.adodataset1.Fields[0].Asstring);
duin.Items.Add(st);
adodataset1.next;
end;
 
while not adodataset1.eof do
begin
st:=trim(form1.adodataset1.Fieldbyname('your field name').Asstring);
combobox1.Items.Add(st);
end;
 
建议使用adotable,对于初学者,adodataset中的许多属性是没有用的
adotable封装了adodataset的许多属性,和ttable具有相同的使用属性
adotable.fieldbyname肯定有
 
我查了delphi5,有adodataset.fieldbyname('字段一').asstring;
 
adodataset完整封装了ado的recordset对象,fields对象等等,主要是提供对ado有
深刻理解的人使用,adotable 类似ttable,adoquery类似tquery,adostoredproc类似
tstoredproc,针对不同对象使用,如果你实现你的需求,只是读一个表,需要回写的
建议使用adotable,读一个表不要回写,或者使用一个复杂的sql查询,建议使用adoquery
当然存储过程用adostoredproc,adotable的tablename下拉就可以获得你的表,但adotable
是读写光标,占用的资源比较多,adoquery可以设置为只读光标,速度最快,资源使用最
 
to sweetychild
我再给你补充几点,
1,fieldbyname 这个属性是非常原始的,
你说没有是因为你在adodataset1.时或者delphi的帮助中没有发现这个属性,
这个属性在此处不出现,你只要使用即可,没有问题的。
2,你的adodataset1.fields用法是错误的fields属性是个数组你要取其中一个字段
即adodataset1.fields来表示。i代表第几个字段,字段的顺序取决于你写的select语句
中字段的顺序。
 
[:D][:D][:D][:D][:D]对拉,谢谢大家
 
再次谢谢大家,结帐了:)
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
后退
顶部