這些存儲過程/函數可以在 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
下載 ms sql server 2000 中文模糊搜尋存儲過程
新聞熱點
疑難解答