【发布时间】:2011-04-06 00:44:33
【问题描述】:
所以我在 Delphi 2009 中搞砸了一个新项目,并且可以拖放到表单上以访问数据的默认组件包括 SQLConnection、DataSource 和 SQLQuery。如果我向查询组件添加一个简单的选择,例如:
select name from customers
然后在表单上放置一个 DBComboBox 并将其与 DataSource 链接起来,我在组合框中得到了一条记录。在使用谷歌半小时来找出我做错了什么之后,看起来您必须手动将一些代码添加到您的项目中,该代码循环遍历数据集并将所有记录添加到下拉框中。比如:
while not SQLQuery.eof do
begin
DBComboBox.items.add(SQLQuery.fieldbyname('name').asstring);
SQLQuery.next;
end;
这实际上是可行的,但是您会在下拉列表中看到一个列表,您实际上无法从中选择任何内容。不管结果如何,尽管我想知道如果您必须手动将查询结果添加到 DBComboBox 中,为什么还要使用它?在我看来,如果它没有自动使用查询结果填充 db 组合框,那么我们还不如使用非数据感知组件,如 tcombobox。
我想我要问的是为什么它会这样工作?数据感知拖放控件的目的不是最大限度地减少实际编写代码的数量并加快开发速度吗?有没有我想念的方法可以让这更容易?
【问题讨论】:
标签: delphi combobox components sql