Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

Ivan_Pisarevsky
дождаться третьей версии ФБ.

А без этого "GENERATED" и не будет работать.

Posted via ActualForum NNTP Server 1.5

22 май 12, 00:11    [12591674]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
a-phone
Member

Откуда:
Сообщений: 6
получилось то что я хотел
и никакой функции ненадо делать
ALTER TABLE UNITS
ADD CODE_BAR GENERATED ALWAYS AS (select bartxt from bc(CARD))
спасибо
22 май 12, 00:25    [12591695]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

Dimitry Sibiryakov
"GENERATED" и не будет работать.

Опаньки, оказывается этот синтаксический сахар ещё в 2.1 ввели... И ведь нигде ни словом
не обмолвились, партизаны...

Posted via ActualForum NNTP Server 1.5

22 май 12, 00:48    [12591725]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
Exteris
Member

Откуда: Новосибирск
Сообщений: 1000
Это чего это за generated такой?
22 май 12, 07:36    [12591985]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
miwaonline
Member

Откуда:
Сообщений: 2249
Exteris,

GENERATED ALWAYS AS

Added in: 2.1

Description: Instead of COMPUTED [BY], you may also use the SQL-2003-compliant equivalent GENERATED ALWAYS AS for computed fields.

Отсюда.

P.S. Нашел только после комментария ДС насчет того, что его ввели в 2.1
22 май 12, 09:19    [12592195]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1588
Поворошим былое :)

CREATE PROCEDURE ID2EAN13 (
    prefix varchar(10),
    id integer)
returns (
    barcode varchar(13))
as
declare variable n integer;
begin
      barcode = prefix || lpad(id, 12-char_length(prefix), '0');

      n = (cast (substring (barcode from  2 for 1) as integer)+
           cast (substring (barcode from  4 for 1) as integer)+
           cast (substring (barcode from  6 for 1) as integer)+
           cast (substring (barcode from  8 for 1) as integer)+
           cast (substring (barcode from 10 for 1) as integer)+
           cast (substring (barcode from 12 for 1) as integer)) * 3
           +
           cast (substring (barcode from  1 for 1) as integer)+
           cast (substring (barcode from  3 for 1) as integer)+
           cast (substring (barcode from  5 for 1) as integer)+
           cast (substring (barcode from  7 for 1) as integer)+
           cast (substring (barcode from  9 for 1) as integer)+
           cast (substring (barcode from 11 for 1) as integer);

      n = mod(n,10);
      if (n>0) then n = 10-n;
      barcode = barcode || cast (n as varchar(20));
  suspend;
end


-- Не понял, для чего тут было
      barcode = barcode || cast (n as varchar(20));

-- Если по логике должно быть так 
      barcode = barcode || cast (n as varchar(1));

-- А на самом деле достаточно так
      barcode = barcode || n;
1 июн 20, 08:01    [22143433]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8569
Эстет. :)
1 июн 20, 08:51    [22143450]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31193
Ivan_Pisarevsky
Эстет. :)
археолог, блин
1 июн 20, 17:14    [22143868]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28878
fraks,

в integer 4 миллиарда, это 10 знаков. а в ean13 12 знаков + 1 контрольная сумма. Не влезет.
1 июн 20, 19:52    [22143987]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
hvlad
Member

Откуда:
Сообщений: 10954
kdv
fraks,

в integer 4 миллиарда, это 10 знаков. а в ean13 12 знаков + 1 контрольная сумма. Не влезет.
И не надо ;)
1 июн 20, 20:13    [22144002]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1588
kdv
fraks,

в integer 4 миллиарда, это 10 знаков. а в ean13 12 знаков + 1 контрольная сумма. Не влезет.


А varchar(20) типа влазило? :)

N - это тот самый расчитанный контрольный разряд, там значение от 0 до 9, оно в любом случае будет как char(1), его кастить не требуется.
2 июн 20, 03:53    [22144123]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 28878
fraks,

да, что-то я не туда посмотрел.
2 июн 20, 10:38    [22144212]     Ответить | Цитировать Сообщить модератору
 Re: У кого нибудь есть процедура для создание Штрих кода последовательном образе?  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8569
fraks
N - это тот самый расчитанный контрольный разряд, там значение от 0 до 9, оно в любом случае будет как char(1), его кастить не требуется.
Я ж говорю, перфекционизЪм, этому коду лет 20 уж будет, писано мной будучи студентом. :) Выше написано можно использовать кто как хочет. Таки да, пылинки сдувать можно.

hvlad
И не надо ;)
О чем выше тоже написано, желающие контроливать переполнение могут написать оный контроль в качестве лабы курса эдак второго-третьего.
2 июн 20, 11:31    [22144235]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Firebird, InterBase Ответить