获取Code128C的SQL函数-朱亦文
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> ADP及SQL SERVER


获取Code128C的SQL函数

发表时间:2010/10/14 12:27:41 评论(0) 浏览(7209)  评论 | 加入收藏 | 复制
   
摘 要:SQLServer数据库中获取Code128C字符编码的SQL函数
正 文:
Create FUNCTION dbo.getCode128C(@Code varchar(30)) RETURNS nvarchar(30)
AS
BEGIN
	----------------------------------
	-- 将编码转换为Code128C条码字符编码
	-- 作者:朱亦文
	-- 日期:2010.10.14
	----------------------------------
	
	-- 必须是数字
	IF (ISNUMERIC(@Code)<>1) RETURN N''
	
	-- 必须为偶数位
	IF (len(@Code) % 2 > 0) RETURN N''
	
	DECLARE @StartC nvarchar(1)
	DECLARE @EndC nvarchar(1)
	DECLARE @Ret nvarchar(30)
	SET @Ret = N''
	SET @StartC = nchar(205)
	SET @EndC = nchar(206)
	
	DECLARE @Total int
	SET @Total = 105
	DECLARE @L int
	SET @L = len(@Code) / 2
	
	DECLARE @I int
	SET @I = 0
	DECLARE @S varchar(2)
	DECLARE @V int
	
	WHILE (@I<@L)
	BEGIN
		SET @S = substring(@Code, @I*2 + 1, 2)
		SET @V = cast(@S as int)
		IF (@V=0)
			SET @Ret = @Ret + N' '
		ELSE IF (@V<95)
			SET @Ret = @Ret + nchar(32 + @V)
		ELSE
			SET @Ret = @Ret + nchar(100 + @V)
		SET @Total = @Total + @V * (@I + 1)
		SET @I = @I + 1
	END
	
	SET @V = @Total % 103

	IF (@V=0)
		SET @Ret = @Ret + N' '
	ELSE IF (@V<95)
		SET @Ret = @Ret + nchar(32 + @V)
	ELSE
		SET @Ret = @Ret + nchar(100 + @V)
	
	SET @Ret = @StartC + @Ret + @EndC
	
	RETURN @Ret
END

2010.10.14

附应用示例图片:


Access软件网交流QQ群(群号:198465573)
 
 相关文章
[转]SQLServer跨服务器访问数据库(openrowset/...  【金宇  2013/5/27】
【PPT格式教程】SQL聚合函数  【张亚帮  2013/5/27】
Access升迁SQL Server的注意事项  【宏鹏(转载)  2013/5/29】
[转]SQLServer中Case when的用法  【金宇  2013/6/3】
使用“升迁向导”将 Access 数据移动至 SQL Server...  【宏鹏(转载)  2013/6/5】
常见问答
技术分类
相关资源
文章搜索
关于作者

朱亦文

文章分类

文章存档

友情链接