关于取得索引字段(100分)

  • 主题发起人 主题发起人 daiyi
  • 开始时间 开始时间
D

daiyi

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在一个ComboBox里给出所有数据库中存放的可选字段,
我使用了
adotable1.open;
for i:=0 to adotable1.fieldcount-1 do
begin
ComboBox1.Item.add(adotable1.FieldByName('abc').AsString);
adotable1.next;
end;
这样的格式,
可是要在其他位置将选择的abc的id取得的时候该怎样做呢,难道还需要再到数据集中去
查找么?那样岂不是很影响效率。
上面的数据表的结构很简单,只是形如:
id abc
0001 'jdkjas'
0002 'fhjjfh'
...
这样子。
有人告诉我可以使用对象的数据结构来解决,形如
type Tabc=class(Tobject)
id:integer;
abc:string;
end;
...
var abc:Tabc;
...
abc:=Tabc.create;
abc.id:=adotable1.FieldByName('id').asinteger;
abc.abc:=adotable1.FieldByName('abc').asstring;
ComboBox1.item.addobject(abc.abc,abc);
...
然后又该怎么办呢?
我刚刚开始学习,对于对象的理解还不是十分清楚,但上面的定义也就是类似record的一个
数据结构,在其上并没有具体实现什么方法,只是继承了Tobject的一般的create,free
...这些方法而已。可是对于这样的问题实在让我很困惑。希望高手指点一二,不胜感激!
 
adotable1.open;
for i:=0 to adotable1.fieldcount-1 do
ComboBox1.Item.add(adotable1.Fields.FieldName);
 
可能我没有把问题说清楚,是这样的:
我是要将abc.id存放到另外的表中,通过ComboBox的选择,我在要插入一条新的记录的时候
怎样很方便的根据combobox的内容能够立即判断所选的id是多少,因为这个id是自增计算的
而在combobox里显示的很明显应当是容易理解的string的数据。
 
然后
ID:=Tabc(Combobox1.Items.Objects[Combobox1.ItemIndex]).id;
 
to:ysai
是的,我取到了。谢谢
to:jsxjd
给了我另一个取数的办法,也感谢你
 
后退
顶部