powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MDB + SQL самоблокировка из-за LazyLoad ?
3 сообщений из 3, страница 1 из 1
MDB + SQL самоблокировка из-за LazyLoad ?
    #39747204
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В связке интерфейсной базы MDB c SQL Server используются прилинкованные таблицы.
В одной из ленточных форм с источником строк прилинкованным представлением около 30 тыс. строк. В соответстви с логикой LazyLoad аксесс подгружает записи по мере необходимости и возможности, т.е. если не переходить по записям то загрузит несколько начальных и к SQL Server будет висеть приостановленный процесс:
Код: plaintext
59	1	AccessFrontEnd	TestDB	SUSPENDED	SELECT	Appa17	535	ASYNC_NETWORK_IO	External ExternalResource=ASYNC_NETWORK_IO			24	TheHost	internal
На форме есть кнопка пересчёта, которая через ADO на SQL Server проводит вычисления и изменяет данные одного из полей, отображаемого в форме и после вызывает .Requery.
И обычно(не всегда) при работе кнопки возникает блокировка:
Код: plaintext
1.
60	1	AccessFrontEnd	TestDB	SUSPENDED	UPDATE	Appa17	11228	LCK_M_IX	pagelock fileid=1 pageid=289384 dbid=5 subresource=FULL id=lock19a41b42c80 mode=SIU associatedObjectId=72057594064994304	59		24	TheHost	internal	
59	1	AccessFrontEnd	TestDB	SUSPENDED	SELECT	Appa17	340	ASYNC_NETWORK_IO	External ExternalResource=ASYNC_NETWORK_IO		1	24	TheHost	internal
Если перед нажатием кнопки прыгнуть на последнюю запись - такого никогда не происходит.

Причём там же на форме есть кнопка с более сложными и объёмными вычислениями и тоже изменяющая (но другие поля) отображаемые данные, но она никогда не вызывает блокировки. А тут спотыкается на простом запросе:
Код: sql
1.
UPDATE Материалы SET Материалы.тОстБ = 0 FROM Материалы WHERE (((Материалы.тОстБ)<>0));


Как разбираться в проблеме? Что изменить ? что почитать ? Куда копать?
...
Рейтинг: 0 / 0
MDB + SQL самоблокировка из-за LazyLoad ?
    #39747660
Фотография Ёжик`
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1
Переделать источник записей формы на запрос к серверу.
В запросе вызывать хранимку и/или добавить хинты nolock.


2
Загружать данные во временную локальную таблицу, и форме давать ее как источник данных.
...
Рейтинг: 0 / 0
MDB + SQL самоблокировка из-за LazyLoad ?
    #39748824
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пришёл к такому варианту.
Для базы данных на SQL server установил в true параметры:
Allow Snapshot Isolation
Is read Committed snapshot On
Проблема с блокировкой ушла.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / MDB + SQL самоблокировка из-за LazyLoad ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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