自动完成 Just SQL / RPG 和 Assembly
Autocomplete Just SQL / RPG and Assembly
所以我正在努力实现一个自动完成搜索栏,并将其与使用 DB2 的 RPG 和组装系统集成。我尝试了这两种技术来从文件中搜索不同的 IDNumbs,在搜索发生之前输入至少需要 3 个数字。我尝试了以下方法:
Regular expression example: ^[0-9]*$
SQL
SELECT DISTINCT [IDNUM] FROM FILE WHERE [iNPUT] > 3;
不幸的是,这两种技术都无法准确工作。如果有人对如何使它更健壮有一些建议,我会很高兴。 RPG 解决方案也很受欢迎,但是 SQL 一个会很棒。
您可以通过以下方式检查您的搜索字符串是否为 RPG 中的数字:
MONITOR
EVAL FIELD = %INT(SEARCH_STR)
ON-ERROR
// error: not a number
ENDMON
其中 SEARCH_STR
是您的搜索字符串,FIELD
定义为数字。
关于查询,如果服务器是 DB2,这应该有效:
SELECT DISTINCT(IDNUM)
FROM FILE
WHERE CHARACTER_LENGTH(SEARCH_STR) >= 3 AND
IDNUM LIKE '%SEARCH_STR%'
用您的搜索字符串更改 SEARCH_STR
。
但我建议通过代码而不是通过 SQL 检查搜索字符串的长度,因为这样做很简单。
所以我正在努力实现一个自动完成搜索栏,并将其与使用 DB2 的 RPG 和组装系统集成。我尝试了这两种技术来从文件中搜索不同的 IDNumbs,在搜索发生之前输入至少需要 3 个数字。我尝试了以下方法:
Regular expression example: ^[0-9]*$
SQL
SELECT DISTINCT [IDNUM] FROM FILE WHERE [iNPUT] > 3;
不幸的是,这两种技术都无法准确工作。如果有人对如何使它更健壮有一些建议,我会很高兴。 RPG 解决方案也很受欢迎,但是 SQL 一个会很棒。
您可以通过以下方式检查您的搜索字符串是否为 RPG 中的数字:
MONITOR
EVAL FIELD = %INT(SEARCH_STR)
ON-ERROR
// error: not a number
ENDMON
其中 SEARCH_STR
是您的搜索字符串,FIELD
定义为数字。
关于查询,如果服务器是 DB2,这应该有效:
SELECT DISTINCT(IDNUM)
FROM FILE
WHERE CHARACTER_LENGTH(SEARCH_STR) >= 3 AND
IDNUM LIKE '%SEARCH_STR%'
用您的搜索字符串更改 SEARCH_STR
。
但我建议通过代码而不是通过 SQL 检查搜索字符串的长度,因为这样做很简单。