Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Сформировать штрихкод

01.01.2007
 /*возвращает строку для формирования штрихкода со стартовыми, 
стоповыми символами и контрольной суммой по кодировке code128
подсистемы B на входе строка, состоящая из цифр (если
какой-то другой символ, то он обрабатывается как 0) */

 
CREATE FUNCTION dbo
.getcode128
(@string as varchar(50) )
RETURNS varchar
(50)
 AS  
BEGIN
 
DECLARE @position
int, @stringnew varchar(50), @sum int, @codestart int, @codestop int
SET @position
= 1
SET @stringnew
= ''
set @codestart=104
set @codestop=106
set @sum=@codestart
 
WHILE @position
<= DATALENGTH(@string)
   
BEGIN
   SELECT @stringnew
=@stringnew+SUBSTRING(@string, @position, 1),
          @sum
=@sum+@position*
         
(case when SUBSTRING(@string, @position, 1)='1' then 17 else
         
case when SUBSTRING(@string, @position, 1)='2' then 18 else
         
case when SUBSTRING(@string, @position, 1)='3' then 19 else
         
case when SUBSTRING(@string, @position, 1)='4' then 20 else
         
case when SUBSTRING(@string, @position, 1)='5' then 21 else
         
case when SUBSTRING(@string, @position, 1)='6' then 22 else
         
case when SUBSTRING(@string, @position, 1)='7' then 23 else
         
case when SUBSTRING(@string, @position, 1)='8' then 24 else
         
case when SUBSTRING(@string, @position, 1)='9' then 25 else
         
16
         
end
         
end
         
end
         
end
         
end
         
end
         
end
         
end
         
end)
   SET @position
= @position + 1
   
END
 
set @stringnew=dbo.code128toWin(@codestart)+@stringnew+dbo.code128toWin(@sum-@sum/103*103)+dbo.code128toWin(@codestop)
 
return (@stringnew)
 
END

Автор: Sh@dow

Взято с Vingrad.ru https://forum.vingrad.ru