create FUNCTION [dbo].[Code128](
@Str NVARCHAR(200))--128B码:ChrW(204)
RETURNS NVARCHAR(200)
AS
BEGIN
DECLARE @checkB INT
DECLARE @i INT ,@j INT
DECLARE @str2 NVARCHAR(2)
SET @i=1
SET @checkB = 1 --开始位的码值为104 mod 103 =1
--
WHILE @i <= LEN(@Str)
BEGIN
SET @str2 = SUBSTRING(@Str,@i,1)
SET @j = ASCII(SUBSTRING(@Str,@i,1))--ASCII(@str2) --不过滤无效字符,比如汉字
IF @j<135
BEGIN
SET @j=@j-32
END
ELSE IF @j >=135
BEGIN
SET @j=@j-100
END
SET @checkB = @checkB + @i * @j
SET @i=@i+1
END
SET @checkB = @checkB % 103 --计算校验位
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载