This is topic Запись в базу со считывателя in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Добрый день, Имеется следующая схема. Считыватель подключенный через USB(com3). Графический экран и база данных. При подносе пропуска к считывателю, происходит считывание идентификатора, затем возвращается значение no card. Как реализовать запись ID карты в базу данных по событию считывания. Если ставить запись в "цикл CALC" то значения карты не всегда записываются в базу, причем значения карты отображаются на дисплее. Буду очень признателен за помощь.
как бы можно было это сделать - "Threading.Thread.Sleep(time)", но я не сильно силен в Trace Mode.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Надо программным путем обрабатывать значение канала, который принимает штрих-код. При Параметр1 = 0 – значение канала увеличивается на 1. Программа должна проверять значение канала и при регистрации его увеличения запускать CALL.SQL, осуществляющий запись кода в БД. Период выполнения программы желательно задать равным 1 с., чтобы обеспечить запись в БД без прерывания.
Posted by ssvonthenet (Участник № / Member № 6310) on :
Как указать увеличение канала на 1? Параметр1 это видимо как раз тот параметр который увеличивается на 1?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Если Параметр4 = 0 или 1 и шаблон привязан к числовому каналу, считанный код записывается как строка в атрибут (47, iDstr) канала (до 60 байт). В случае успешного считывания, значение канала изменяется в зависимости от атрибута Параметр1 (95, C2): если Параметр1 = 0 – увеличивается на 1.
Т.е. необходимо считывать значение канала (атр. 0 - Реальное значение) программно и при каждом его изменении (в данном случае на 1 при каждом успешном считывании) запускать CALL.SQL, осуществляющий запись кода в БД.
Posted by ssvonthenet (Участник № / Member № 6310) on :
Если параметр1 = 0, то я не получаю никаких данных со считывателя. Если параметр1=1, то я получаю два значения последовательно, 1 - номер карты, 2 - нет карты. Я это вижу на ГЭ каждый раз когда подношу карту. Можно ли это считать событием? Если я тип данных ставлю число, то я вижу при каждом прикосновении число увеличивающееся на 2(номер карты, нет карты). И мне нужно чтобы 100% эти данные были записаны в базу. Можно ли это сделать на языке ST? но тогда как будет выглядеть запрос? Или может быть е сть функционал который это позволяет сделать.
Posted by Жигалов Денис Николаевич (Участник № / Member № 6035) on :
/* IF Параметр_1 = /*Необходимое условие*/ THEN Запись_в_базу = 1; END_IF; */
Где "Запись_в_базу" - Аргумент программы типа OUT привязанный к входному значению канала Связь_с_СУБД. 1 - номер выполняемого запроса.
Posted by ssvonthenet (Участник № / Member № 6310) on :
Уважаемый Денис, Не могли бы вы подсказать как сделать условие? Или где можно про это прочитать? Уже 2 дня не могу ничего с этим сделать.(Не программист )
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
ssvonthenet,
Судя по результатам Вашего эксперимента, протокол, поддерживаемый Вашим считывателем карт, не соответствует стандартным протоколам считывания штрих-кодов и магнитных носителей, на которые рассчитан драйвер? поставляемый в Trace Mode 6.
В связи с этим проблема организации работы с указанным устройством выходит за рамки Trace Mode 6.