好心人帮我看一小段代码,马上给分!
我的一个自定义函数:
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