在程序设计中,为方便用户输入,需设计成用户输入拼音首字母或笔画,电脑显示相应的汉字,下面存储过程演示这一过程;
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
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
在程序设计中,为方便用户输入,需设计成用户输入拼音首字母或笔画,电脑显示相应的汉字,下面存储过程演示这一过程;
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
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