Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Генерация штрих-кода средствами SQL  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
Штрих-коды можна отображать с помощью специальных шрифтов.
Может кто-то писал на SQL генерацию стороки для отображения штрих-кода с помощью шрифтов?
Ищу для Code 128 и EAN 13.

Спасибо.
15 мар 14, 05:59    [15728233]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
invm
Member

Откуда: Москва
Сообщений: 9442
Зачем размениваться на шрифты? Генерируйте уж сразу изображение штрих-кодов. На T-SQL.
15 мар 14, 09:51    [15728396]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
invm,
С картинками намного хуже чем со шрифтами. Размениваться - это как раз на картинки, а со шрифтами удобнее.
15 мар 14, 14:08    [15729031]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
o-o
Guest
Shovgenyuk,

а не заметили, что в сообщении invm еще 2 строки есть?
невидимыми чернилами.
там вторая часть совета: "...а базы данных рисуйте в фотошопе"
15 мар 14, 16:10    [15729333]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Shovgenyuk
С картинками намного хуже чем со шрифтами.
Ничего подобного, шрифты очень сложная вещь, кернинг и растеризация это ни хухуры-мухры. А главное очень не эффективно, только 3D с задействованием графических карт может улучшить ситуацию.

Подробнее тут и тут.
15 мар 14, 17:18    [15729481]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
Я понимаю ваши намёки и скептецизм, но вы не совсем правы.

Штрих-код - это строка, которуя можна получить с помощью некой функции, например
функцияштрихкод(строкапараметр).
В таблице есть заполненное поле-номер со строкапараметр.
Обясните мне, что ненормального и плохого в том что бы например, написать SQL-инструкцию:
Select номер, функцияштрихкод(номер) ..... From таблица1 ?
Потом можна выводит данные в репорт, например или куда угодно.

Неужели будет лучше проходить в цикле по всем записям запроса на клиенте и получать значение функцияштрихкод?

Ну если вы уж такие умные со своими намёками, то ответьте мне , нафига на T-SQL написаны такие функции, как например, COS, SIN и много других? По вашим намёкам, такие вещи должні делаться на клиенте (или третем уровне), но не в БД.
15 мар 14, 18:11    [15729649]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
londinium
Member

Откуда: Киев
Сообщений: 1179
автор
Я понимаю ваши намёки и скептецизм, но вы не совсем правы.

А Вы случайно не путаете генерацию строки штрих-кода с ее отрисовкой?
15 мар 14, 19:15    [15729967]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
londinium
автор
Я понимаю ваши намёки и скептецизм, но вы не совсем правы.

А Вы случайно не путаете генерацию строки штрих-кода с ее отрисовкой?


А Вы читали мой вопрос?
Shovgenyuk
Может кто-то писал на SQL генерацию стороки для отображения штрих-кода....


Может кто-то что-то и путает, но если внимательно читать, то помагает ;)
15 мар 14, 19:24    [15730020]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31498
Shovgenyuk
Штрих-коды можна отображать с помощью специальных шрифтов.
Может кто-то писал на SQL генерацию стороки для отображения штрих-кода с помощью шрифтов?
Ищу для Code 128 и EAN 13.

Спасибо.
Не то?
create function Code128Barcode(
	@input varchar(3997), @table char(1) = 'B'
)
returns table
with schemabinding
as
--=======================================================================--
--== Function to build the required data string for a code 128 barcode ==--
--== Code written from a description of the specification by           ==--
--== Mister Magoo - find me on SSC or twitter @mistermag00             ==--
--== NOTE: this code does not validate that you are passing in valid   ==--
--==       data for code 128 barcodes. SISO                            ==--
--=======================================================================--

return (
		-- build an inline fast tally table
		with n10(n) as (
			select 1 union all select 1 union all 
			select 1 union all select 1 union all 
			select 1 union all select 1 union all 
			select 1 union all select 1 union all 
			select 1 union all select 1 
			),
		n100(n) as (
			select 1 from n10 a, n10 b
			),
		n10000(n) as (
			select 1 from n100 a, n100 b
			),
		tally(n) as (
			-- limit the tally table to the exact length of the input string
			select top(len(@input)) row_number() over(order by @@spid) as n from n10000 order by n
			)

		-- Now the query that does the "work"
		select 
			   -- in Code 128, the "table" is denoted by one of three START codes
			   case @table 
				when 'A' then char(208) 
				when 'B' then char(209) 
				when 'C' then char(210) 
			   end -- START

			 + @input -- Original string

			   -- The code 128 Checksum is made up by taking the sum of each 
			   -- of the input string's characters numbers (ASCII - 32)
			   -- multiplied by it's position in the string , plus the character
			   -- number of the START character, then taking MODULUS 103
			   -- This number is converted to ASCII by adding 32

			 + char(32+(sum(n*(ascii(substring(@input,n,1))-32))+case @table when 'A' then 103 when 'B' then 104 when 'C' then 105 end)%103) 

			   -- The STOP character never changes and denotes the end of the barcode.

			 + CHAR(211) -- STOP

			   -- we need an alias for the column
			   AS encoded_for_128
		from tally
	)
15 мар 14, 19:57    [15730188]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
MazoHist
Guest
Code128 и другие: тут
Для EAN13 : могу поискать то что использовалось у нас
15 мар 14, 22:11    [15730900]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
alexeyvg, MazoHist большое спасибо
16 мар 14, 03:10    [15731968]     Ответить | Цитировать Сообщить модератору
 Re: Генерация штрих-кода средствами SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
+ Shovgenyuk
Shovgenyuk
А Вы читали мой вопрос?
Shovgenyuk
Может кто-то писал на SQL генерацию стороки для отображения штрих-кода....
Может кто-то что-то и путает, но если внимательно читать, то помагает ;)
А что вы ожидаете от людей?
Чтобы они читали невнятные вопросы, а они вас понимали с полуслова между строк?

У темы топика есть Термины. И если хотите чтобы вам ответили сразу, следовали бы им.
А так складывается впечатление, что вы знаете что хотите, но формулировать лень, искать самому лень, переводить найденое в интернете в код SQL лень ...

Это я хотел бы заступится за всех тех кто не ответил сразу на ваш вопрос.
Контрольная цифра и Codabar намного понятнее, чем размазня "Генерация штрих-кода средствами SQL".
:-P

"Средства SQL" - ну и месиво.
16 мар 14, 16:03    [15733336]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить