You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从经筛选的SQL列中提取不重复值添加至TComboBox组件

最优实现方案对比

方案1:SQL语句直接去重查询(优先推荐)

直接构造带去重的查询语句,让Access数据库层面完成去重逻辑,是性能最优、代码最简洁的方案。
使用的SQL语法如下:

SELECT DISTINCT Tip FROM 你的表名 WHERE Dept = '目标筛选部门值'

实现步骤:

  • 给TADOQuery赋值上述SQL语句,连接数据库执行
  • 遍历查询返回的结果集,逐行将Tip字段值添加到TComboBox的Items中即可
    优势:无需在业务代码中额外写去重逻辑,数据库原生的去重算法效率远高于业务层实现,哪怕后续表数据量增长也不会有性能问题。

方案2:已有结果集的内存去重

如果你已经完成了Dept筛选的查询,拿到了5行结果,不想再发起一次数据库请求,可以在内存中完成去重:
实现步骤:

  • 创建一个临时TStringList对象,设置sorted = true,Duplicates = dupIgnore
  • 遍历已有的TADOQuery结果集,将每行的Tip字段值添加到临时TStringList中,重复值会被自动过滤
  • 最后将临时TStringList直接赋值给TComboBox的Items属性即可
    优势:无需额外访问数据库,对于你当前仅5行的小结果集,执行效率极高。

方案3:固定值直接写死

如果你确认该场景下Tip的取值只会是FAX、PRINTER、SCANNER三个,没有其他可能的取值,可以直接给TComboBox的Items手动赋值三个选项,连数据库查询都不需要,是开发效率最高的方案。

示意图

内容的提问来源于stack exchange,提问作者Mamed Aliyev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:27:05