Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2349035
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 17:57:39

 

MS SQL Server 2000 中文模糊搜寻存储过程及函数
版本 1.0.0.5
发布时间 2004-05-20

【软件简介】
这些存储过程/函数可以在 MS SQL Server 2000 里使用,包含两组存储过程, 这两组函数的功能相同, 只是适用的汉字内码范围不同。
这些存储过程及函数支持 GBK (大陆简体中文及繁体中文) 和 BIG5 内码 (台湾及香港等的繁体中文)
这些函数将直接用在 SQL 语句里, 使用非常方便。
可以按照含有读音相近的文字进行查找, 可以处理多音字, 可以查找含有某个相近读音的字的记录, 在查找姓名时特别有用。
这些存储过程全部用 C++ Builder 编写, 并且汉字读音全部由 C++ 处理, 效率比较高, 比汉字读音储存在数据库里用 SQL 查询快很多

【授权方式】
1.本存储过程为免费软件(Freeware), 可以免费使用.
2.如果你(无论你代表个人还是实体)要发布软件或者作为商业用途, 这个软件(存储过程/函数)必须作为你的软件的功能的一部分,
不能单独发布和出售本软件(存储过程), 也不能以这个软件制作一个类似功能的软件(存储过程或函数等)来发布.
3.这个授权仅授权给你(无论你代表个人还是实体), 你不能再次授权给别人进行授权和发布.

【使用方法】
具体参数说明参考安装方法里面的 SQL 语句

得到名字的读音编码 (GBK)
select name,dbo.fn_cncode(name,8) from table1

搜寻所有名字含有与'小宝'读音相近的记录, 不区分 Zh Ch Sh 与 z c s (GBK)
select * from table1 where dbo.fn_cnlike(name,'小宝',9)<>0

得到名字的读音编码 (BIG5)
select name,dbo.fn_cncode(name,0) from table1

搜寻所有名字含有与'小寶'读音相近的记录, 不区分 ㄓㄔㄕ 与 ㄗㄘㄙ (BIG5)
select * from table1 where dbo.fn_cnlike(name,'小寶',1)<>0

【安装方法】
1.把动态链接库 VictorMsUa.dll 复制到 MS SQL Server 的 Binn 文件夹。
默认位置为 C:\Program Files\Microsoft SQL Server\MSSQL\Binn

2.通过执行 SQL 语句注册存储过程,这些存储过程必须在 Master 数据库里面注册。
打开 Master 数据库,然后执行下面 SQL 语句

EXEC sp_addextendedproc 'xp_getspcode' , 'VictorMsUa.dll'
EXEC sp_addextendedproc 'xp_gbksndlike' , 'VictorMsUa.dll'
EXEC sp_addextendedproc 'xp_getchinesecode', 'VictorMsUa.dll'
EXEC sp_addextendedproc 'xp_chinesesndlike', 'VictorMsUa.dll'

3.在用户数据库里面创建对应的函数
打开用户数据库,然后执行下面的 SQL 语句

-- GBK 编码, 支持繁体中文和简体中文
-- str1: 汉字字符串, 返回值: 拼音编码 (双拼格式)
CREATE FUNCTION fn_getspcode (@str1 VARCHAR(8000))
RETURNS CHAR(1024) AS
BEGIN
  DECLARE @sp CHAR(1024)
  EXEC master.dbo.xp_getspcode @str1, @sp OUTPUT
  RETURN @sp
END
go

-- GBK 编码, 支持繁体中文和简体中文
-- sstr 和 ssub 为汉字字符串, 从 sstr 里面按照读音相近规则查找 ssub
-- options: 0: 一般选项, 1:不区分Zh Ch Sh 与 z c s , 2:任意順序, 3:包括1和2 (GBK)
CREATE FUNCTION fn_gbksndlike (@sstr VARCHAR(8000), @ssub VARCHAR(8000), @options SMALLINT)
RETURNS SMALLINT AS
BEGIN
  DECLARE @v SMALLINT
  EXEC master.dbo.xp_gbksndlike @sstr, @ssub, @options, @v OUTPUT
  RETURN @v
END
go

-- 支持 BIG5 和 GBK 两种汉字编码, 支持繁体中文和简体中文, 通过 options 参数设定
-- str1: 汉字字符串, 返回值: 拼音编码 (双拼格式)
-- options: 0: BIG5 编码, 8: GBK 编码
CREATE FUNCTION fn_cncode (@str1 VARCHAR(8000), @options SMALLINT)
RETURNS CHAR(1024) AS
BEGIN
  DECLARE @sp CHAR(1024)
  EXEC master.dbo.xp_getchinesecode @str1, @options, @sp OUTPUT
  RETURN @sp
END
go

-- 支持 BIG5 和 GBK 两种汉字编码, 支持繁体中文和简体中文, 通过 options 参数设定
-- sstr 和 ssub 为汉字字符串, 从 sstr 里面按照读音相近规则查找 ssub
-- options: BIG5: 0: 一般选项, 1:不区分Zh Ch Sh 与 z c s , 2:任意順序, 3:包括1和2 (GBK)
-- GBK : 8: 一般选项, 9:不区分Zh Ch Sh 与 z c s , 10:任意順序, 11:包括1和2 (GBK)
CREATE FUNCTION fn_cnlike (@sstr VARCHAR(8000), @ssub VARCHAR(8000), @options SMALLINT)
RETURNS SMALLINT AS
BEGIN
  DECLARE @v SMALLINT
  EXEC master.dbo.xp_chinesesndlike @sstr, @ssub, @options, @v OUTPUT
  RETURN @v
END
go


223,337 字节 (下载 6517 次)


相关软件:

 


--------------------next---------------------

阅读(1622) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~