powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
53 сообщений из 53, показаны все 3 страниц
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014336
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deadlock. Update contlicts with сопсurеnt update.
Помогите правильно выставить настройки транзакций пожалуйста.
Читаю-читаю по транзакциям и Фибплюсовские доки и Хелен Борри и гуглю
и никак не могу понять как избавиться от этого дела.

Описание ситуации:

Есть аптека, есть программа "бьющая чеки". Процесс "закрытия чека" происходит через хранимую процедуру.
Процедура выполняется через FIBQuery. В транзакции к нему выставлено:
write
nowait
rec_version
read_committed

Таких рабочих мест в аптеке бывает до 5 и никогда конфликтов не возникало. Транзакции короткие.
И тут я на "сервер" где база добавляю прогу для передачи в центральный офис изменений.

Певая программа при выполнении ХП ставит 1 в поле "change". Ну что типо было изменение остатка.
Вторая на локальном сервере каждые 5 мин. делает выборку по этому полю "change", отправляет
инфу по остаткам на удаленный сервер и ставит признак "change" в 0, причем для каждой записи
стартуется и закрывается отдельная короткая транзакция с теми же настройками.
write
nowait
rec_version
read_committed

Конфликты возникают между ХП в первой программе и командой которая изменяет с 1 в 0 признак изменения.
Иногда выдается ошибка в первой а иногда во второй программе.

Много написал конечно но хотелось чтобы было все понятно )

Юзается Delphi+Firebird 2.0.4+FIBPlus 6.9.9.

Заранее спасибо.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014352
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoИ тут я на "сервер" где база добавляю прогу для передачи в центральный офис изменений.возьми нормальный репликатор, неблокирующий и будет тебе счастье.
Их более одного, стоят недорого.

Апдейтить исходные данные ради репликации, как по мне, так идеологически совсем неправильно.
А если надо отрепдлицировать разом в пяток других баз будешь пять раз апдейтить?
оно ж совсем сдохнет на дэдлоках.

Вот протоколирующий триггер куда приятней.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014366
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут все очень сложно и просто в одночасье.
Репликаторы не подходят.
Долго обьяснять.

Тут как-бы нужно добиться чтобы на хп ошибка не вылетала и она имела приоритет.
Пусть уже "репликатор" сбоит себе и перезапускает таймер, отправит в след. раз.
Вот как такого добиться не понимэ.
Игрался разными вариантами настроек но уже запарился подбирать.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014385
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoРепликаторы не подходят.Все пациенты врут.
Mironicoчтобы на хп ошибка не вылеталаапдейты зло, нет апдейта, нет и дэдлока.
MironicoДолго обьяснять.А ты попробуй сформулировать мысль письменно, пока пишешь, глядишь и решение придумаешь.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014386
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironico,

схема полная хрень. Ну конечно кое-что можно сделать, но поле change тут точно не в кассу. Когда остаток пересчитывается дёргай генератор и пиши новый номер. А вторая прога пусть у себя учитывает закачивала ли она остаток с таким номером или нет, а первую базу вообще не трогает.

Хотя я бы не сказал что это прямо, но по крайней мере конфиликтов поможет избежать. Нормальный репликатор конечно лучше.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014395
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисХотя я бы не сказал что это прямокривулек можно много напридумывать, только нужно ли?

Тут самый простой вариант пристыкованная 1-1 табличка, которую апдейтит "чудо репликатор" и будет тоже самое, криво, но дэдлоков не будет.

Тут надо проектировать систему с прицелом на работу в паре с нормальным репликатором.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014850
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironico,

Есть еще вариант, который сразу напрашивается.
В процедуре, которая сохраняет чек, не должно быть update и delete . Это вообще закон основной. Конституция. Иначе репликация (такая кривая) - не единственное, из-за чего будут теряться чеки.

В данный момент, думаю, чем всё переделать и изменить репликацию, проще убрать из транзакции, сохраняющей чек, все update и delete. Если хочешь что-то такое сделать после чека не критичное - открывай другую транзакцию.
Если это что-то - критичное - придумывай какую-то логику, чтобы попытаться повторно выполнить это после дэдлока (например запись в буффер того, что необходимо сделать, вместе с сохранением чека, коммит чека и этого буффера, а затем попытки в другой транзакции, пока не получится).
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014870
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoКонфликты возникают между ХП в первой программе и командой которая изменяет
с 1 в 0 признак изменения.
Врёшь. Или у вас существуют чеки, которые закрываются дважды.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014974
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMironicoКонфликты возникают между ХП в первой программе и командой которая изменяет
с 1 в 0 признак изменения.
Врёшь. Или у вас существуют чеки, которые закрываются дважды.
Да нет, там скорей всего в этой же процедуре обновляются остатки, или что-то типа того.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39014981
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

да я так понимаю у него тупо остатки по товару считаются, когда чеки закрываются. Как только остаток пересчитался ставится признак пересчитан. Как только репликатор забрал изменённый остаток - признак сбрасывается. Короче полная кривизна.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018770
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да причем тут остатки.
Есть 2 таблицы.
"Товары" и "партии".
Конечно ХП при пробитии чека снимает остатки. т.е. изменят таблицу "партии".
В Таблицу "товары" ставит при этом на нужном товаре 1.

Друагя программа в Таблицу "товары" ставит на нужном товаре 0.

Если Транзакция ХП 2-3 секунды максимум то транзакция репликатора вообще короткая.


ВОПРОС в том что при изменении таблицы "партии" несколькими кассами никаких конфликтов обновлений и близко нет.
Почему такая фигня с товарами?
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018780
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoЕсть 2 таблицы.
"Товары" и "партии".
Конечно ХП при пробитии чека снимает остатки. т.е. изменят таблицу "партии".
В Таблицу "товары" ставит при этом на нужном товаре 1.

Друагя программа в Таблицу "товары" ставит на нужном товаре 0.

Если Транзакция ХП 2-3 секунды максимум то транзакция репликатора вообще короткая.


какая бы транзакция короткая не была она всё равно имеет вероятность конфликта с другой. Тебе же уже сказали схема кривая.

MironicoВОПРОС в том что при изменении таблицы "партии" несколькими кассами никаких конфликтов обновлений и близко нет.
Почему такая фигня с товарами?

да откуда нам знать что у тебя там с партиями. Может ты на разных кассах разные партии расходуешь.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018800
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoХП при пробитии чека снимает остатки. т.е. изменят таблицу "партии".
В Таблицу "товары" ставит при этом на нужном товаре 1.
Зачем она ставит 1 в таблице товаров, если не изменяет её?.. Конечно, ты нарвёшься на
конфликт когда кто-то пробивает чек на товар, который сейчас реплицируется. Поэтому не
надо реплицировать товары, достаточно реплицировать чеки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018808
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mironicoизменении таблицы "партии" несколькими кассами никаких конфликтов обновлений и близко нет.Это тебе кажется. запусти пару-тройку сотен касс и "попрет".
Симонов Дениссхема кривая.видимо это надо повторить еще десяток раз.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018821
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На кой мне реплицировать чеки?
Мне в офисе нужны остатки по 65 точкам максимально актуальные.
Будь везде хороший инет я бы раз в час гонял все остатки и не парился бы.
А так приходится раз в 10 мин. обновлять только измененные.
Поскольку у меня никогда никаких дедлоков не было решил что проще всего в товарах
добавить признак изменения в остатка в партиях.
Пробивается чек - меняется остаток в партиях - ставится 1 в товарах.
по таймауту запускается репликатор - выбирает из товаров позиции с 1 - отправляет изменения на сервер - ставит 0.
И вот нарвался.

Сейчас думаю как переделать.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018824
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoСейчас думаю как переделать.Триггер!
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018827
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для чего триггер
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018838
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoБудь везде хороший инет я бы раз в час гонял все остатки и не парился
бы.
Угадай с трёх раз почему off-line репликация была изобретена.

MironicoПробивается чек - меняется остаток в партиях - ставится 1 в товарах.
по таймауту запускается репликатор - выбирает из товаров позиции с 1 - отправляет
изменения на сервер - ставит 0.

Достаточно вторую часть заменить на "по таймауту запускается репликатор - выбирает новые
чеки, суммирует их - отправляет изменения на сервер - сбрасывает признак новизны".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018873
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне не продажи нужны (не чеки).
Мне нужны остатки из партий.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018895
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoМне не продажи нужны (не чеки).
Мне нужны остатки из партий.
Ты не поверишь, но новые остатки получаются из сложения старых остатков с продажами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018911
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А зачем этот мартышкин труд для компа если есть готовые остатки?
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018922
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче убрал проставление change=1 Из ХП и вроде пока норм.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39018986
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMironicoМне не продажи нужны (не чеки).
Мне нужны остатки из партий.
Ты не поверишь, но новые остатки получаются из сложения старых остатков с продажами.
Именно это и происходит все "2-3 секунды", пока длится эта пишущая чек транзакция. Но ТС говорит, что это "вроде норм", т.ч. ладно.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019001
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockИменно это и происходит все "2-3 секунды", пока длится эта пишущая чек
транзакция.
Но происходит это на кассе, где текущие остатки, собственно, ни к чему. А вот если
перенести этот процесс в центральный сервер (где, возможно, даже железо мощнее), то
операция проведения чека, глядишь, будет выполняться гораздо быстрее. И конфликты
исчезнут. Но аффтар-то гордится придуманной им схемой и переделывать её не станет. Фтопку.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019070
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockТС говорит, что это "вроде норм"все пациенты врут.
Dimitry SibiryakovНо происходит это на кассе, где текущие остатки, собственно, ни к чему.Касса это очень жесткий реалтайм. Клиент над душой и он может тупо уйти. Раз товар дошел до кассы, значит он гарантированно есть (вот он в руках кассира!), сверяться с остатками(впрочем, если касса в этот момент в онлайне, можно и свериться, чтоб минимизировать пересорт, одно индексное чтение это не страшно) и тем более их двигать нет никакого смысла, т.е. апдейт уходит как класс вообще при пробитии чека.
Далее опционально можно подхватывать в фоне пробитые чеки, двигать остатки, отсылать(возможно предагрегированные) данные куда надо.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019365
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

А оно где выполняется то? Не на сервере?
Не на кассе же ХП выполняется.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019439
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoА оно где выполняется то? Не на сервере?
Не на кассе же ХП выполняется.
Зачем тогда репликация, если база одна - на сервере?
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019480
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

Базы 2.

Кассы - это клиенты.
База в каждой аптеке своя на отдельном компьютере.
Допустим 5 касс + 1 комп как сервер.

Ну и в офисе база для "остатков аптек". Нужна она как "справочная - где что-почем".

Напрямую писать остатки на офисный сервер сразу нельзя ибо инет разный бывает.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019490
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У ТС-а в голове каша, "перловка". Нужен постановщик, который опишет бизнес процесс, только потом программировать.

MironicoНапрямую писать остатки на офисный сервер сразу нельзя ибо инет разный бывает.Ниочем.

Есть касса, она должна максимально быстро отработать и отпустить клиента. Далее чек должен быть обработан роботом (асинхронно относительно кассы), робот может делать несколько вещей, как то двигать остатки, отсылать уведомления, начислять-списывать бонусы, сихронизировать базу с некой центральной и т.д и т.п.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019521
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoБаза в каждой аптеке своя на отдельном компьютере.
Допустим 5 касс + 1 комп как сервер
Ну это практически равносильно тому, что на каждой кассе своя, "терминальная" или "локальная", база, которая реплицируется в центр. Т.ч. остатки у тебя считаются как раз на кассе, как и написал Сибиряков.
И раз это так (что очень плохо уже) - тебе надо сделать всё, чтобы избавиться от обновления остатков или чего бы то ни было в транзакции, которая сохраняет чек. Об этом тебе уже писали много раз. Вот - цель номер 1 в роадмап твоей программы. Иначе спать спокойно не будешь. Тут без вариантов.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019538
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,

Само собой есть роботы такие.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019541
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

Я чет не совсем понимаю как тогда при продаже остаток должен минусоваться.


А ХП разве на стороне клиента выполняется?
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019548
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoЯ чет не совсем понимаю как тогда при продаже остаток должен минусоваться.

Никак. Остаток вообще в базах филиалов не нужен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019606
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНикак. Остаток вообще в базах филиалов не нужен.
Хорошо, если так. Но иногда хотят бороться только с пересортицей, но и с продажами из под полы. И еще мало ли с чем в темном мозгу товароведов/манагеров родящимся. И ставят кассиров в жесточайшие рамки. Вплоть до того что не только возврат по паролю, но и удаление позиции товара из подготавливаемого чека. Тогда остатки на кассе нужны, без них не обойтись.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019622
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoYuRock,

Я чет не совсем понимаю как тогда при продаже остаток должен минусоваться.

Кто тебе сказал, что он вообще должен минусоваться когда-либо? Особенно - в момент продажи?
Плюнь ему в лицо! (если сам придумал - не признавайся)

У меня, например, остатки тоже всегда есть на кассах, но они всегда моментально рассчитываются - последнее значение из кэша + новые приходы - новые расходы - новые чеки (новые - это за текущую смену).
Кэш на начало смены можно при пересменке (открытии новой смены) рассчитывать, можно пересчитывать при запросе из процедуры (если это безопасно, из процедуры сохранения чека - не безопасно) - много разных вариантов.

Если всё таки надо после чека изменить остатки - и так можно сделать. Я уже писал - напимер, в процедуре сохранения чека сделай инсерт в какую-то таблицу, что по этому товару надо перерасччитать остатки. Затем закоммить транзакцию, а затем, в другой транзакции, пытайся обновить остатки, пока не получится. Например, это может делать другой поток, или вообще - робот. Например, при добавлении записи этому роботу придет эвент и разбудит его.
А при попытке добавить товар в чек - проверяй, выполнено ли обновление остатков по этому товару, и жди, если надо (это надо, если есть необходимость проверки на отрицательные остатки перед продажей).
А ХП разве на стороне клиента выполняется?
У тебя - да, если ты это так называешь, т.е. в аптеке. Не важно, где база лежит - на компе, который кассой управляет, или рядом в локалке. К сожалению, не на "центральном сервере БД, в которой 65 аптек".
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019624
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockтолько с пересортицей
не только
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019751
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovОстаток вообще в базах филиалов не нужен.и когда я приду и спрошу "а есть ли у вас синпроравитамизин?" аптекарь полезет по ящичкам искать его, вместо того, чтобы поиск по базе запустить на наличие этой химии :)
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019774
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadsterкогда я приду и спрошу "а есть ли у вас синпроравитамизин?" аптекарь
полезет по ящичкам искать его, вместо того, чтобы поиск по базе запустить на наличие этой
химии :)
Да, полезет. Во всяком случае все аптекари, которых я видел, делали именно так.

И только не найдя его в ящичке, полезет в компьютер чтобы посмотреть если такая штука
вообще существует и (теоретически) может быть в наличии на складе, куда надо идти, оставив
рабочее место и очередь покупателей.

И нет, это никак не связано с тем, что компьютер может ошибаться по вопросу остатков
гораздо чаще чем кладовщик.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019789
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadsterDimitry SibiryakovОстаток вообще в базах филиалов не нужен.и когда я приду и спрошу "а есть ли у вас синпроравитамизин?" аптекарь полезет по ящичкам искать его, вместо того, чтобы поиск по базе запустить на наличие этой химии :)
Ну то что я видел, гдето-так и происходило
Сначала в комп (цена, и есть ли оно в принципе), потом по ящичкам, нашли - продали, не нашли - в комп и аптека в которой оно может быть, если меня устраивает та аптека то звонок туда с уточнением есть или нет
Ну как-то так меня в некоторых аптеках обслуживали
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019864
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovroadsterкогда я приду и спрошу "а есть ли у вас синпроравитамизин?" аптекарь
полезет по ящичкам искать его, вместо того, чтобы поиск по базе запустить на наличие этой
химии :)
Да, полезет. Во всяком случае все аптекари, которых я видел, делали именно так.

И только не найдя его в ящичке, полезет в компьютер чтобы посмотреть если такая штука
вообще существует и (теоретически) может быть в наличии на складе, куда надо идти, оставив
рабочее место и очередь покупателей.

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

Фармацевт в нормальной аптеке нажмет хоткей, введет ключевое слово из названия препарата, и получит полный список всех возможных фасовок/партий/производителей с подсказками в каком именно ящике на какой полке или в каком холодильнике нужный препарат находится и сколько его там есть.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019870
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таки сначала в комп смотрят. Цену смотрят. А потом уже лезут искать.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019881
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineФармацевт в нормальной аптеке нажмет хоткей, введет ключевое слово из
названия препарата, и получит полный список всех возможных фасовок/партий/производителей с
подсказками в каком именно ящике на какой полке или в каком холодильнике нужный препарат
находится и сколько его там есть.
Одно из двух: или я не покупал настолько экзотических лекарств, или мне попадались
исключительно аптекари с запредельно хорошей памятью. Поскольку они сначала лезли в
шкафчик, а только потом совали коробочку под сканер штрих-кода. Никаких попыток "ввода
ключевого слова" я обычно не наблюдал. Даже в случае, когда я спросил лекарство, которого
не было не только в продаже, но и вообще уже в природе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019883
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS:
miwaonlineв автоматизации розничной торговли у тебя опыта нет
Нету. Зато с этой стороны прилавка я нахожусь вполне регулярно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019889
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovmiwaonlineФармацевт в нормальной аптеке нажмет хоткей, введет ключевое слово из
названия препарата, и получит полный список всех возможных фасовок/партий/производителей с
подсказками в каком именно ящике на какой полке или в каком холодильнике нужный препарат
находится и сколько его там есть.
Одно из двух: или я не покупал настолько экзотических лекарств, или мне попадались
исключительно аптекари с запредельно хорошей памятью. Поскольку они сначала лезли в
шкафчик, а только потом совали коробочку под сканер штрих-кода. Никаких попыток "ввода
ключевого слова" я обычно не наблюдал.
Память здесь ни при чем. До известной степени, конечно же. Просто все лекарства лежат отсортированны по группам/категориям и если фармацевт знает что соответствующий препарат есть и где он лежит, то естественно, что лишний раз смотреть остатки смысла для него нет никакого.

Еще вариант, что используемый софт просто не предоставляет такой возможности, либо же возможность недостаточно удобна для фармацевта.

Тем не менее, «я вам не скажу за всю Одессу», но в наших деревнях поиск наличия препарата (при чем не только в текущей аптеке, но и, по желанию, в других аптеках города/района, которые используют тот же софт) используется очень часто. Возможно еще и потому, что реализован удобно для фармацевта и быстро выдает актуальную информацию.
Dimitry SibiryakovДаже в случае, когда я спросил лекарство, которого
не было не только в продаже, но и вообще уже в природе.
И даже не предложили аналоги и не подсказали где могли завалаться остатки? Ай-яй-яй, как непрофесионально. В некоторых особо диких областях за такое можно и без премии остаться
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019899
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДаже в случае, когда я спросил лекарство, которого
не было не только в продаже, но и вообще уже в природе.Вот почему твой маразм сарказм не излечим ;)
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019901
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovвсе аптекари, которых я видел, делали именно так.странно, я такое вижу редко уже, автоматизировались люди и у многих похоже даже выдаёт информацию где искать.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39019911
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovmiwaonlineФармацевт в нормальной аптеке нажмет хоткей, введет ключевое слово из
названия препарата, и получит полный список всех возможных фасовок/партий/производителей с
подсказками в каком именно ящике на какой полке или в каком холодильнике нужный препарат
находится и сколько его там есть.
Одно из двух: или я не покупал настолько экзотических лекарств, или мне попадались
исключительно аптекари с запредельно хорошей памятью. Поскольку они сначала лезли в
шкафчик, а только потом совали коробочку под сканер штрих-кода. Никаких попыток "ввода
ключевого слова" я обычно не наблюдал. Даже в случае, когда я спросил лекарство, которого
не было не только в продаже, но и вообще уже в природе.

Слушайте меня пацаны,я вам объясню:
1. При покупке "ходовки", т.е. того, что покупается часто - фармацевт всегда знает в каком ящике лежит товар и в каком кол-ве и искать что-то в товароучетной системе ему не надо. Где лежит анальгин и шприц на 10 кубиков он итак помнит.
2. При покупке редкопокупаемого лекарства фармацевт ориентируется на память и ищет сначала в ящике,где должен быть товар данной группы, если не находит - ищет в товароучетной системе. Это уже от человека зависит.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39020595
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonlineв наших деревнях поиск наличия препарата (при чем не только в текущей аптеке, но и, по желанию, в других аптеках города/района, которые используют тот же софт) используется очень часто.
[quote]
Я рад за Ваш софт. Но у ТС база находится возле кассы, и инета нет (может не быть). Т.ч. при чем тут эти навороты - не совсем ясно.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39020627
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockmiwaonlineв наших деревнях поиск наличия препарата (при чем не только в текущей аптеке, но и, по желанию, в других аптеках города/района, которые используют тот же софт) используется очень часто.

Я рад за Ваш софт. Но у ТС база находится возле кассы, и инета нет (может не быть). Т.ч. при чем тут эти навороты - не совсем ясно.

Софт не мой, но все равно спасибо.

При чем навороты может быть понято, если топик читать не по диагонали, а полностью, и не вырывать фразы из контекста.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39020725
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miwaonline,

Хочется сказать "проехали", но все же. Зашел в топике спор о том, что на кассе желательно не вести остатки, а лучше - в центре. Вы пришли и не согласились с этим, привели пример пользы доступности остатков на других складах. Наличие чего как раз и доказывает, что остатки в таких системах и ведутся в центре. Т.е. Вы не согласны как раз с тем, что предлагаете.

Кажется, так. Но если я ступил и где-то что-то кого-то просмотрел/недопонял - извиняюсь.
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39020755
Mironico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подождите товарисчи.
Вся эта моя "задумка" только для того чтобы собрать остатки всех наших аптек в кучу
и чтобы в любой аптеке на любой кассе аптекарь мог сказать покупателю что где почем
если в его аптеке этого нет.

Интернет у нас в каждой аптеке 80 % проводной и в основном стабильный.
Но есть эти 20% где инет беспроводный, иногда очень плохой сигнал, иногда
просто модемы виснут. В 3х аптеках еще EDGE причем не самый хороший.
Поэтому "типа репликатор" отправляет только "изменения" через промежутки времени.
Самая простая схема.
Долго сидеть и выдумывать что-то получше на данный момент времени нет - отвлекают куча
других обязанностей и постоянные звонки по 30-50 в день.
Просто хотелось избавиться от дедлоков с которыми раньше не сталкивался (за 10 лет ни разу).
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39020757
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoПоэтому "типа репликатор" отправляет только "изменения" через промежутки
времени.
Самая простая схема.
Твоя проблема не в репликаторе. Просто ему не везёт напороться на конфликт чуть чаще, чем
остальным. Твоя проблема в самой логике ведения остатков и решать её надо на
концептуальном уровне.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
    #39020881
NikolayV81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MironicoПодождите товарисчи.
Вся эта моя "задумка" только для того чтобы собрать остатки всех наших аптек в кучу
и чтобы в любой аптеке на любой кассе аптекарь мог сказать покупателю что где почем
если в его аптеке этого нет.

Интернет у нас в каждой аптеке 80 % проводной и в основном стабильный.
Но есть эти 20% где инет беспроводный, иногда очень плохой сигнал, иногда
просто модемы виснут. В 3х аптеках еще EDGE причем не самый хороший.
Поэтому "типа репликатор" отправляет только "изменения" через промежутки времени.
Самая простая схема.
Долго сидеть и выдумывать что-то получше на данный момент времени нет - отвлекают куча
других обязанностей и постоянные звонки по 30-50 в день.
Просто хотелось избавиться от дедлоков с которыми раньше не сталкивался (за 10 лет ни разу).

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
просто хоть и криво:
create table tab_upd_goods ( id, goods_id );
create table tab_send_goods ( id, goods_id);
create sequence s_tab_upd_goods;

После пересчёта при создании чека вместа update в goods делаем:
insert into tab_upd_goods ( id, goods_id) values ( s_tab_upd_goods.nextval, :goods_id );

При репликации:
delete from tab_send_goods;
insert into tab_send_goods ( id, goods_id ) select id, goods_id from tab_upd_goods;
Товары для репликации: Select goods_id from tab_send_goods group by goods_id

!после успешной репликации:
delete from tab_upd_goods d where d.id in select s.id from tab_send_goods;


p.s. При этом шансы получить коллизии при расчёте остатков ( при одновременной продаже одного и того же товара в нескольких кассах ) у вас никуда не денутся о чём сдесь уже писали
...
Рейтинг: 0 / 0
53 сообщений из 53, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Deadlock. Update contlicts with сопсurеnt update. Помогите решить.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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