在程序设计中,为方便用户输入,需设计成用户输入拼音首字母或笔画,电脑显示相应的汉字,下面存储过程演示这一过程;
1、在数据库中建一对应表chinese_tab,内含6W多条汉字对应记录,字段分别为chinese,pingyin,bihua , 表单内容略 2、输入汉字字符串,输出对应的拼音和笔画 CREATE PROCEDURE [dbo].[Pro_CnToBihuaPingYin] @sourceStr varchar(500), @PinYingStr varchar(50) out, @BiHuaStr varchar(50) out AS declare @other varchar(150) set @other='qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789!@#$%^&*()_ +-=`~,./;[]\<>?:"{}|' declare @i int set @i=0 while @i<=len(@sourceStr) begin if charindex(substring(@sourceStr,@i,1),@other)>0 set @sourceStr=replace(@sourceStr,substring(@sourceStr,@i,1),' ') set @i=@i+1 end set @sourceStr=replace(@sourceStr,' ','') declare @chinese varchar(2) declare @pingyin varchar(1) declare @bihua varchar(1) set @PinYingStr=''
set @BiHuaStr='' declare tempWp cursor for
select chinese,pingyin,bihua from dbo.chinese_tab where charindex(chinese,@sourceStr)>0 open tempWp
fetch next from tempWp into @chinese,@pingyin,@bihua while @@FETCH_STATUS = 0 begin if @PinYingStr='' set @PinYingStr=@sourceStr if @BiHuaStr='' set @BiHuaStr=@sourceStr set @PinYingStr=replace(@PinYingStr,@chinese,@pingyin) set @BiHuaStr=replace(@BiHuaStr,@chinese,@bihua) fetch next from tempWp into @chinese,@pingyin,@bihua end close tempWp deallocate tempWp GO 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/delphi1234/archive/2008/10/28/3168918.aspx |
|