Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > ADP及SQL SERVER

获取Code128C的SQL函数

时 间:2010-10-14 12:27:41
作 者:朱亦文   ID:61  城市:岳阳
摘 要: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群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助