用于查询的下拉式组合框类功能

时间:2010-04-17 13:37:06

标签: informix

是否可以使用informix客户端工具提供以下类型的功能?

当用户键入名称的前两个字符时,下拉列表为空。在第三个字符处,列表仅填充以这三个字符开头的名称。在第四个字符处,MS-Access完成第一个匹配的名称(假设组合的AutoExpand已打开)。输入足够的字符以标识客户后,用户将标记到下一个字段。

在击键之间加载组合所花费的时间很少。除非用户再次退回前三个字符,否则仅对每个条目发生一次。

如果您的列表仍包含太多记录,则可以通过将常量conSuburbMin的值从3更改为4来将它们减少另一个数量级。

1 个答案:

答案 0 :(得分:1)

这需要两件事的组合,其中只有一件事部分在Informix DBMS或Informix Client API的控制之下。

首先,您需要接受用户输入的小工具以异步方式生成与用户键入的内容相匹配的查询,从DBMS中获取一些结果并显示它们。其次,您需要DBMS快速响应此类查询。部分问题是“查询采用什么形式”。但基本功能是:

 SELECT TitleCaseName
   FROM ReferenceTable
  WHERE LowerCaseName[1,3] = 'abc';

您可能会或可能不会对“第一行优化”感到烦恼;你可能会或可能不会打扰ORDER BY。您的代码只会选择前N行。您可以使用一些优先级信息 - 最常用的名称等来实现。

但对于任何DBMS来说,逻辑基本相同 - 给出或采取细节,例如处理案例映射(函数调用vs列)的技术选择和子串与LIKE'abc%'的符号。 / p> 但是,棘手的是,用户输入的异步组合以及从DBMS收集数据;最好用多个线程处理,一个处理用户输入,一个处理DBMS,(可能)一个处理显示(或者也可能是处理用户输入的处理)。这需要挂钩到UI API - 而不是Informix API自己做的事情。用户可以通过ODBC或任何其他类似的API轻松地获取Informix(或任何其他DBMS)。