首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

好心人帮小弟我看一小段代码,马上给分

2011-12-29 
好心人帮我看一小段代码,马上给分!我的一个自定义函数:Createfunctionsp_hexadecimal1(@binvaluevarbinary

好心人帮我看一小段代码,马上给分!
我的一个自定义函数:

Create   function   sp_hexadecimal1   (@binvalue   varbinary(255))
RETURNS   int  
AS  

begin
DECLARE   @charvalue   varchar(255)
DECLARE   @i   int
DECLARE   @length   int
DECLARE   @hexstring   char(16)

SELECT   @charvalue   =   ' '
SELECT   @i   =   1
SELECT   @length   =   DATALENGTH(@binvalue)
SELECT   @hexstring   =   '0123456789abcdef '

WHILE   (@i   <=   @length)
--BEGIN
DECLARE   @tempint   int
DECLARE   @firstint   int
DECLARE   @secondint   int

SELECT   @tempint   =   CONVERT(int,   SUBSTRING(@binvalue,@i,1))
SELECT   @firstint   =   FLOOR(@tempint/16)
SELECT   @secondint   =   @tempint   -   (@firstint*16)
SELECT   @charvalue   =   @charvalue   +
SUBSTRING(@hexstring,   @firstint+1,   1)   +
SUBSTRING(@hexstring,   @secondint+1,   1)
SELECT   @i   =   @i   +   1


return   (upper(@charvalue))

END

用下面的语句执行后,就没反应了.......
select   dbo.sp_hexadecimal1(120)  

帮我看看什么问题.....


[解决办法]
做串口?
[解决办法]
create function dbo.f_int_hex(@num int,@len int)
--@num 为要转换成16进制的10进制数,@len为转换后占用的位数
returns varchar(100)
as
begin
declare @result varchar(100)
set @result= ' '
while len(@result) <@len
select @result=substring( '0123456789ABCDEF ',@num%16+1,1)+@result,@num=@num/16
return(@result)
end

热点排行