powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Может у кого есть скриптик валидации штрихкода EAN-13?
9 сообщений из 9, страница 1 из 1
Может у кого есть скриптик валидации штрихкода EAN-13?
    #32026315
maximvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно сабж. Сам алгоритм я знаю, но как-то не хочется велосипед выдумывать - может у кого то уже готовое есть? Принимается все - от простого запроса, до навороченной sp

PS Ссылки на сам алгоритм или ресурсы связанные с EAN просьба не давать - у меня и у самого их навалом...
...
Рейтинг: 0 / 0
Может у кого есть скриптик валидации штрихкода EAN-13?
    #32026404
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встречный вопрос. Какое отношение имеет MS SQL к валидации EAN-13?
...
Рейтинг: 0 / 0
Может у кого есть скриптик валидации штрихкода EAN-13?
    #32026486
maximvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Garya
Встречный вопрос вам - а какое отношение имеет MSSQL например к бухгалтерскому учету? Или к примеру, какое отношение имеет MSSQL к складскому учету? Или к документообороту в фирме? Или черт знает еще к чему?
Данные он хранит!!! И обрабатывает, черт возьми!!!!

ЗЫ Всем спасибо, процедура уже имеется...
...
Рейтинг: 0 / 0
Может у кого есть скриптик валидации штрихкода EAN-13?
    #32026506
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну зачем же так нервничать? Просто обычно распознавание штрих-кода EAN-13(иже с ним всех прочих) производится специальным считывающим устройством, прогоняется через терминал...
После чего он преобразуется в обыкновенную числовую или численно-буквенную последовательность, которая перед обработкой на SQL-сервере:
- может быть преобразована в binary
- может быть преобразована в numeric
- может быть преобразована в char
- может быть пропущена через хеш-функцию вплоть до преобразования в int или bigint.
И лишь после этого запускаются алгоритмы поиска на SQL-сервере.
Смысл моей реплики - не SQL-сервера дело заниматься распознаванием штрих-кодов или распознаванием образов иного плана. Для это имеются специпальные устройства.
Или вы интегралы, ротор и дивергенцию, преобразования Фурье и Котельникова тоже на SQL-сервере считаете? Бедный SQL-сервер...
...
Рейтинг: 0 / 0
Может у кого есть скриптик валидации штрихкода EAN-13?
    #32026516
maximvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Просто обычно распознавание штрих-кода EAN-13
Я же не написал, что мне нужно его распознавать. Мне нужно его "провалидировать", то есть проверить правильность.
Есть громадная база, чего либо. В ней присутствует громадное количество штрихкодов, которые вводились когда-то(и сейчас вводятся) вручную(и по другому никак нельзя - специфика такая)! Мало того - возможности встроить проверку этого самого штрихкода в клиент нет и не будет никогда! Естественно, при таких раскладах будут появлятся ошибки ввода. Ну и естественно эти ошибки нужно отслеживать... но уже потом - после ввода...(опять таки повторюсь - специфика работы такая... нужно делать именно так и никак иначе) Ну и как вы мне прикажете поступать в таком случае? Выбрать все штрихкода из таблиц и ручками сидеть самому считать какой из них правильный, а какой нет? А сервер пусть поотдыхает,он ведь бедненький не для этого предназанчен, он ведь только для поиска предназанчен... SQLServer предназначен в первую очередь для хранения и ОБРАБОТКИ данных! Вот я и спрашивал - процедуру обработки данных, которая занимается проверкой правильности штрихкода...

ЗЫ Вижу я, что это все переросло в небольшой флейм и офтоп, посему хочу извиниться перед Garya за весьма резкий тон моих высказываний и попросить больше не развивать эту тему... "Мир, дружба, жвачка"(с) Ок?
ЗЗЫ А по поводу интегралов.. можно и интегралы быстрее чем в спец пакетах, для этого предназначенных, считать на SQLServer-е и ничего ему не будет... самое главное - правильно организовать структуру хранения данных...
...
Рейтинг: 0 / 0
Может у кого есть скриптик валидации штрихкода EAN-13?
    #32027785
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну конечно жвачка, дирол, стиморол, тринитротолуол... Никто и не думал заводить баталии. Конечно, развивать эту тему смысла нет. Тем не менее, для некоторых других участников форума полезно будет узнать, как не совсем четко поставленный вопрос может увести в дебри, а не в нужном направлении.
IMHO, не следует использовать специфические термины, если нет уверенности в том, что они употребляются в общепринятом смысле. Вы употребили термина "валидация" совсем не в том смысле, в котором он обычно используется. Под валидацией подразумевается определение, действиельно ли считанный код кодом EAN-13, а не EAN-8, Codabar или каким другим. Для этого следует проверить пропорции между штрихами, стартовых стоповых и разделительных штрихов, наличие префикса, контрольного разряда и взаимного их соответствия. Подобную операцию обычно осуществляет считывающее устройство. Потому и был задан мой встречный вопрос. Поэтому были упомянуты алгоритмы распознавания образов и все прочее.
Вам же, как я понял, нужно просто получить ответ на вопрос, имеется ли в БД считываемый код. Ответ на него прост:
if exists(select * from SomeTable where ID=@MyCod)
...
Рейтинг: 0 / 0
Может у кого есть скриптик валидации штрихкода EAN-13?
    #32027847
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Garya

Не надо считать себя умнее других, только на том основании, что вы знаете слова типа: "пропорции между штрихами", "стартовых стоповых и разделительных штрихов", "префикса", "контрольного разряда" и т.д.

Термин "валидация" - означает только то, что он означает:
\nvalidation n преим. юр.
1. утверждение; ратификация
2. придание законной силы; легализация
3. подтверждение (информации)


И в контексте данного топика - он был использован правильно, т.е. действительно - записям БД, содержащим в некотором поле информацию о штрих-коде нужно было присвоить некое "подтверждение" того, что этот штрих-код является кодом EAN-13, а не EAN-8, Codabar или каким другим ...

Вам же, как я понял, нужно просто - "блеснуть" тут непонятно перед кем своей т.н. "крутостью", иначе - зачем после формального "закрытия топика" его автором - предлагать тут советы "космического масштаба" о том - как if exists(select * from SomeTable where ID=@MyCod) ?

З.Ы. Надо полагать, что (следуя вашей логике) любой другой штрих-код, кроме EAN-13, надо проверять запросом if not exists(select * from OtherTable where ID=@YourCod)?
...
Рейтинг: 0 / 0
Может у кого есть скриптик валидации штрихкода EAN-13?
    #32027889
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не собирался я ничем блестеть. Просто вопрос задан нелогично. И именно в вопросе используется пробескивание терминами, не имеющими отношения к делу, которое и завело в тупик. Если автору вопроса нужно узнать, есть ли в таблице искомый код, то (следуя элементарной логике) какой смысл уточнять, что это код именно EAN-13? Видимо, автор вопроса полагал, что алгоритм "валидации" EAN-13 чем-то отличается от алгоритма аналогичной "валидации" EAN-8? Отличаться он может только на стадии распознавания кода. А по поводу использованной в вопросе терминологии, IMHO, наиболее коротко изначально поставленный вопрос звучит так:
Есть ли у кого скрипт кода, который отвечает на вопрос:
Is that code a valid EAN-13 code?
Попробуйте поставить вопрос иначе с использованием слов "valid" и "EAN-13" - мне кажется, у вас возникнут с этим сложности.
В последней реплике автора вопроса звучит фраза:
> Мне нужно его "провалидировать", то есть проверить правильность ...
IMHO, любой код EAN-13 является правильным кодом EAN-13. А вот, что считается правильным с точки зрения данного приложения, изначально в вопросе сказано не было, следовательно (с точки зрения элементарной логики) является несущественным. Не было это сказано и во второй реплике автора вопроса. И лишь в третьей реплике появился слабый намек. И по каким таким космическим каналам связи можно догадаться, что правильным считается код, который вводится именно " вручную "? То есть, код, полученный с помощью считывателя, не должен считаться правильным (!?)? А если на склад поступает номенклатура, которая раньше на складе никогда не фигурировала? И вообще, даже если правильные коды - это только те, которые ранее уже использовались, где критерий, в каких рамках они использовались - в пределах всех складов, одного склада, одной секции склада или одной полки?
Актуальность подробного разбора полетов по существу заданного вопроса оставляет серьезные сомнения, тем более, что вопрошающего ответ уже не интересует. Я лишь пытался на данном примере обратить внимание на то, что мешает нормально работать форуму - на технологию спрашивания и отвечания. Неточно поставленный вопрос приводит к долгому блужданию в околоземном пространстве, пока наконец станет ясно, что же на самом деле хотел узнать вопрошающий.
Тем не менее, я догадываюсь, что именно в моем ответе не понравилось qu-qu. Полагаю, это нравоучительный тон. Я приношу извинения всем участникам форума и в первую очередь maximvm. qu-qu, ты тоже не дуйся.
...
Рейтинг: 0 / 0
Может у кого есть скриптик валидации штрихкода EAN-13?
    #32027921
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Garya

А когда это мы уже успели перейти "на ты"?

Хотя, я лично ничего против этого не имею... и даже - рад, что мой "позывной" узнаваем здешними старожилами до такой степени, что дает повод к менее формальному обращению.

А насчет "технологии задавания вопросов" ты безусловно прав - грамотно спросить о том, что же является проблемой тоже своего рода - проблема...


Например, на тот же вопрос Может у кого есть скриптик валидации штрихкода EAN-13? - так и подмывало ответить 3-мя вариантами:
1. У меня нет и не будет;
2. У меня нет, но будет через 2 часа (с учетом поиска в и-нете алгоритма проверки и наличия этих 2-х часов);
3. "Та трохи е, алэ - тилькы для сэбэ...".

Ну и насчет "нравоучительного тона" - ты тоже попал в 10-тку...
, точно - не люблю я этого дела (наверное, стиль моих "выступлений" здесь тоже узнаваем?).

З.Ы. ну и напоследок, чтоб это сообщение было не просто флеймом, а помогло "читающим" узнать побольше обо всех превратностях разработки ПО в т.н. "боевых условиях"...
Эпиграф: То есть, код, полученный с помощью считывателя, не должен считаться правильным (!?)?
Году, этак, в 96-97-м делали мы с коллективом на заводе одном ввод приходных и расходных накладных на(с) склад СГП при помощи считывателей штрих-кодов... Сделали... красота... едут коробки с наклейками по транспортеру на склад, рядом стоит кладовщица, тычет в каждую коробку считывателем... рядом на компе программулинка крутится, которая все считанное в локальную табличку заносит и при выборе кладовщицей определенной кнопочки - формирует накладные и забрасывает их в сервер БД... (от чего клиенты "писали кипятком", так это - от возможности к каждой накладной приложить спецификацию с серийными номерами изделий). Казалось бы - идиллия... ан нет - Россия... Считыватели в разное время использовались разные, но все - из дешевых моделей, т.е. сами они считываемый код на "валидность" не проверяли (это раз), наклейки со штрих-кодами печатались на лазернике до полного "убития" картриджа, т.е. некоторые штришки уже и не различались (это - два), компы на складе были тоже "не из новейших" и во время передачи данных на сервер теряли "хвосты" данных от СОМ-порта, к которому был подключен считыватель, т.е. некоторые коды попадали в табличку неполными (это - три). Так что - с уверенностью говорить о том, что "код, полученный с помощью считывателя должен считаться правильным" не было никакой возможности...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Может у кого есть скриптик валидации штрихкода EAN-13?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]