|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
Доброго дня всем! Столкнулся с проблемой, не понимаю как ее решить... Файл, лежит в общей папке, работают в нем одновременно два человека с разных ПК. Осуществляют телемаркетинг по заданиям. И есть запрос, который должен получить номер следующего задания. При это прочитав данные из трех таблиц. Таблица Предикторы_локал имеет список всех заданий. Таблица Предикторы_звонки_локал имеет список звонков - звонок создается при выдаче задания, и записывается без даты завершения звонка (открытое задание). Соответственно надо получить ID следующего задания из таблицы Предикторы-локал , для которого нет ни одной связанной записи в таблице Предикторы_звонки_локал . Проблема в том, что в одной конфигурации происходит мистика: при выполнении такого запроса - система ИНОГДА не видит открытые звонки, и выдает в работу задание, которое сейчас открыто у другого сотрудника. Подумал проблема в блокировках, потом я добавил таблицу сессий, в которой прямо указываю с каким заданием сейчас работают сотрудники, но и это не помогло. Та же проблема. Думаю что проблема в кэшах, почему то на момент формирования Access смотрит не в ту таблицу, которая лежит в общей папке, а во временную, и берет не корректное значение... Но почему так происходит? Причем эта ошибка повторяется только в одной конфигурации сети - Ноутбук с общей папкой + Ноутбук с доступом к той папке. Пробовали на других компах с разными конфигурациями (через сервер, также на общем диске) - искусственно не смогли повторить такую ситуацию, задания выдаются по очереди и не задваиваются! Помогите разобраться, в чем может быть проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2016, 17:27 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
Толикmanнадо получить ID следующего задания из таблицы Предикторы-локал , для которого нет ни одной связанной записи в таблице Предикторы_звонки_локал .А как именно это делается, нам предложено угадать? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2016, 18:32 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
Сетевая папка может быть настроена на оффлайновый доступ, тогда механизмы доступа к файлу меняются и данные не всегда актуальны. Попробуйте прибить шару на проблемном ноутбуке и подключить ее снова, чтобы не разбираться с настройками ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 07:10 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
Akina, не вложилось что-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 08:18 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
авторСетевая папка может быть настроена на оффлайновый доступ, тогда механизмы доступа к файлу меняются и данные не всегда актуальны. MrShin, то есть в момент чтения он обращается к локальной версии файла, а в момент записи все же пытается достучаться до реальной версии? Значит мне для "синхронизации" надо перед чтением добавить операцию записи (например сессию раньше обновлю) и тогда локальная версия автоматически обновиться и при чтении я получу актуальные данные? Но останется проблема с блокировками... Пересоздать общую папку попробуем обязательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 08:25 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
ТоликmanЗначит мне для "синхронизации" надо перед чтением добавить операцию записи (например сессию раньше обновлю) и тогда локальная версия автоматически обновиться и при чтении я получу актуальные данные? Но останется проблема с блокировками... Конечно останется. Не надо костылями пытаться обойти то, что должно быть безусловно отключено. Если именно это является причиной, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 08:40 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
AkinaТоликmanнадо получить ID следующего задания из таблицы Предикторы-локал , для которого нет ни одной связанной записи в таблице Предикторы_звонки_локал .А как именно это делается, нам предложено угадать? истина скорее всего здесь, Акина не зря спросил, если бы первый кто вычислил новый ID однозначно сразу его и устаканил бы (вычислил ID, создал новую запись (вплоть до того что уйти с неё на предыдущую, а потом вернуться обратно) думаю не было бы проблем... имхо не явный захват ID... надеюсь клиенты везде и способы подключения одинаковые... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 08:58 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
Толикman, А каким образом получаете следующий ключ? Если это поле с автонумерацией, то, по идее не должно быть задваиваивания, даже если создавший запись не сошел с новой записи и не записал ее полностью - автонумератор увеличивает счетчик сразу, вне зависимости от того, была записана новая запись или нет. Если создаете руками - могут быть проблемы, я бы не полагался на самописные алгоритмы. Есть, конечно, свои нюансы с автонумерацией, даже просто форма с подчиненной субформой может при некоторых специфичных условиях сгенерировать в поле с автонумерацией повторяющееся значение даже в однопользовательской среде, но правильно сделанные формы работают без проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 09:15 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
MrShin, в таблицу Предикторы_локал загружаются клиенты - Каждый клиент и есть задание, но поле Код (ID) устанавливается не счетчиком а запросом, потому что список клиентов сливается из общей базы клиентов, и его номер тянется оттуда для дальнейших связей. В таблице Предикторы_звонки_локал - ID ставится автоматом. В момент работы телемаркетологов подгрузки данных не происходит, поэтому задания резервируются из "статического" набора таблицы Предикторы_локал авторимхо не явный захват ID Почему же неявный? Есть таблица с клиентами Предикторы_локал . Есть таблица с звонками Предикторы_звонки_локал . По клиенту нет звонка - клиент свободный, берем в работу. Создаем звонок связанный с клиентом, тем самым резервируем клиента. Следующий телемаркетолог по такой же логике не получит одного и того же клиента, или я ошибаюсь? Я понимаю к чему клоните, что в момент запроса другого пользователя, Access может не увидеть созданный звонок (он сейчас создается, прям вот сейчас), но это конфликт в доли секунды, и наверное его можно решить если заблокировать всю таблицу со звонками а не изменяемой записи верно? Это кстати тоже для меня пока вопрос... Да и проблема не в секундах а в минутах... Одна позвонил в 14:10 и завершила разговор в 14:20. Так, пока она говорила с клиентом, второй телемаркетолог в 14:15 взял того же клиента. Ну за 5 минут то все запросы были выполнены? Во вложении запрос на добавление - он берет код клиента запросом, скрин которого есть выше (там установлен лимит на количество записей = 1), и вставляет новую запись в Предикторы_звонки_локал . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 11:29 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
ТоликmanЕсть таблица с клиентами Предикторы_локал . Есть таблица с звонками Предикторы_звонки_локал . По клиенту нет звонка - клиент свободный, берем в работу. Создаем звонок связанный с клиентом, тем самым резервируем клиента. мутновато... в этой связке многовато вокруг условий (тем более в запросах), по которым определяется статус занят / свободен... а если в преликат_локал тупо поставить галочку "занят" ? если оператор сел на запись, то сразу ставит признак "занято", при уходе (завершении) снимает галочку, ну и развить, чтоб отображалось кто висит, сколько висит, возможность принудительного сброса занято (на случай если вместо разговора арм отвалился)... не ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 11:56 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
vmag, это я рассматривал, но ввиду обязательности регистрации звонков (их может быть несколько, каждый надо посчитать, например отложенные звонки), решил что добавлять столбцы будет избыточным - ведь уже есть таблица со звонками, в которую записывается результат звонка. К тому же я писал, что создал еще одну таблицу - сессии, там количество записей по количеству сотрудников работающих в базе - каждые пять минут по таймеру сессия актуализируется, тем самым видно кто отвалился/ушел с работы, кто еще работает. И там я прямо в лоб пишу номер клиента/задания, с которым сейчас работает сотрудник. И потом смотрю запросом, если в сессиях данный клиент указан, то не брать его в работу. В итоге получилась двойная проверка на занятость клиента/задания. Дело в том, что это все отлично работает в других комбинациях сети/компов, мы больше нигде не смогли повторить такой ошибки. А вот на конкретных двух компах это вылетает, пока надеюсь на оффлайн доступ... ИМХО: Ну лично мне кажется, что писать информацию о резервации прямо в той таблице, в которой данные хранятся не совсем этично, я часто пользовался дополнительными таблицами, которые управляли очередями, и всегда работало... Конечно это сопряжено с увеличением времени выполнения запроса, но индексами это все почти нивелируется. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 12:13 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
Толикman, ну вам виднее... наведите мышкой на таблицу сессий в ноуте и посмотрите подсвеченный путь (где она лежит), если путь такой как у всех, то напрашивается вывод, что на этом ноуте не работает таймер по обновлению таблицы сессий... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 12:42 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
vmag, в том то и дело, что работает!!!)))) Ошибка есть, сессии корректные, звонки есть, все говорит о том, что этого не должно было произойти, но оно случилось... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 12:50 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
Толикman, и тут на всех компах тоже одинаково ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:41 |
|
Access, локальная сеть и запрос на выборку
|
|||
---|---|---|---|
#18+
vmag, хороший вопрос, не проверял. у нас access 2010, там в параметрах клиента это, верно же? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:18 |
|
|
start [/forum/topic.php?fid=45&msg=39334267&tid=1613038]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 152ms |
0 / 0 |