主页C++ Builder 源码Interbase 中文模糊搜寻 UDF
Victor 串口控件
 • 最新版本 (VCL/FMX)
 • 常见问题及解决方法
 • 以往版本串口控件
控件安装方法
 • XE6 ~ C10 (CX)
 • XE2 ~ XE5
 • 2007/2009/2010/XE
 • BCB5, BCB6
使用简介
串口控件详细说明
串口调试工具
C++ Builder 资料
C++ Builder 编程技巧
C++ Builder 操作指南
C++ Builder 参考手册
C++ Builder 资源
控件
SDK 开发库
源码
软件发布
更新动态
网站更新记录
网友留言/技术支持

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';

/*****************************************************************************/


下载 Interbase 中文模糊搜寻 UDF 222,925 字节 (下载 6136 次)

相关软件: MS SQL Server 2000 中文模糊搜寻存储过程及函数


C++ 爱好者 -- Victor Chen 的个人网站 www.cppfans.com 辽ICP备11016859号