分类:
2008-12-17 17:58:15
Interbase 中文模糊搜寻 UDF
版本 1.0.0.6
发布时间 2003-09-10
这个 UDF 包含两组(4个函数), 这两组函数的功能相同, 只是适用的汉字内码范围不同。
这些函数将直接用在 SQL 语句里, 使用非常方便。
可以按照含有读音相近的文字进行查找, 可以处理多音字, 可以查找含有某个相近读音的字的记录, 在查找姓名时特别有用。
例如:
搜寻所有名字含有与'逍遥'读音相近的记录
select * from table1 where chinesesoundlike(name,'逍遥',11)<>0
得到名字的读音编码 (类似于双拼的编码)
select name,getchinesecode(name,1) from table1
1.新增的适用于 GB 简体中文 和 BIG5 繁体中文的函数:
GETCHINESECODE('中文',选项)
能够得到中文读音的编码,相同的读音会得到相同的编码。
选项: <>0:简体中文(GB),
0:繁体中文(BIG5)
CHINESESOUNDLIKE('中文甲','中文乙',选项)
会按『选项』的方法比较两个中文的读音是否相同或相近。
繁体中文选项: 0:一般选项,
1:不区分ㄓ ㄔ ㄕ 与 ㄗ ㄘ ㄙ, 2:任意順序, 3:包括 1 和 2
简体中文选项: 8:一般选项,
9:不区分Zh Ch Sh 与 z c s , 10:任意順序, 11:包括 9 和 10
如果读音相同或相近,返回值 <>
0
2.只适用于中国大陆的 GB 简体中文(兼容以前版本):
GBKSPCODE('中文')
能够得到中文读音编码,相同的读音会得到相同的编码。
GBKSOUNDLIKE('中文甲','中文乙',选项)
会按『选项』的方法比较两个中文的读音是否相同或相近。
简体中文选项: 0:一般选项,
1:不区分Zh Ch Sh 与 z c s , 2:任意順序, 3:包括 1和 2
如果读音相同或相近,返回值 <>
0
安装方法:
1.把动态链接库 VictorIbUa.dll 复制到 Interbase 的
UDF 文件夹。
2.执行下面的 SQL 注册, 这些 UDF 函数就可以使用了:
/*****************************************************************************/
/* char *__export fn_getspcode(char *s); */
/*****************************************************************************/
DECLARE EXTERNAL FUNCTION GBKSPCODE CSTRING(80)
RETURNS CSTRING(1024) FREE_IT
ENTRY_POINT 'fn_getspcode' MODULE_NAME 'victoribua';
/*****************************************************************************/
/* short __export fn_gbksndlike(char *sstr, char *ssub, short *options);
*/
/* options: 0:一般选项, 1:不区分Zh Ch Sh 与 z c s , 2:任意順序, 3:包括1和2 (GBK)
*/
/*****************************************************************************/
DECLARE EXTERNAL FUNCTION GBKSOUNDLIKE CSTRING(256),CSTRING(256),SMALLINT
RETURNS SMALLINT BY VALUE
ENTRY_POINT 'fn_gbksndlike' MODULE_NAME 'victoribua';
/*****************************************************************************/
/* char *__export fn_getchinesecode(char *s, short *options); */
/* options: =0:BIG5, <>0:GBK */
/*****************************************************************************/
DECLARE EXTERNAL FUNCTION GETCHINESECODE CSTRING(80),SMALLINT
RETURNS CSTRING(1024) FREE_IT
ENTRY_POINT 'fn_getchinesecode' MODULE_NAME 'victoribua';
/*****************************************************************************/
/* short __export fn_chinesesndlike(char *sstr, char *ssub, short
*options); */
/* options: 0:一般选项, 1:不区分Zh Ch Sh 与 z c s , 2:任意順序, 3:包括1和2 (BIG5)
*/
/* 以上值 + 8 (GBK) */
/*****************************************************************************/
DECLARE EXTERNAL FUNCTION CHINESESOUNDLIKE CSTRING(256),CSTRING(256),SMALLINT
RETURNS SMALLINT BY VALUE
ENTRY_POINT 'fn_chinesesndlike' MODULE_NAME 'victoribua';
/*****************************************************************************/
222,925 字节 (下载 3654 次)
相关软件: