powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Блокировки
5 сообщений из 5, страница 1 из 1
Блокировки
    #32829977
YP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть связка Access 2000(mdb) + MSSQL 2000. Таблицы подлинкованы через ODBC. В форме (в формате Datasheet) отображется информация. Если в этой форме осуществлять вставку большого количества строк одновременно (например копированием информации из Excel), то происходит полное блокирование таблицы на сервере. При этом вставка строк на сервер происходит построчно. Можно ли как-то в форме оптимизировать этот процесс (в смысле чтоб информация уходила на сервер одним пакетом)? Или нужно писать отдельную обработку таких массовых вставок (например непосредственно на сервере)? Спасибо.
...
Рейтинг: 0 / 0
Блокировки
    #32830338
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как раз из-за отправки одним пакетом и происходит полная блокировка таблицы (читать про эскалацию блокировок, если интересно)
...
Рейтинг: 0 / 0
Блокировки
    #32832916
YP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем ж тогда обяснить, что вставка этих же строк в Enterprise Manager (тоже копирование) происходит мгновенно, а в Access на это уходит до 30-40 секунд? В событиях BeforeInsert, AfterInsert, BeforeUpdate, AfterUpdate ничего нет.
...
Рейтинг: 0 / 0
Блокировки
    #32832927
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YPЧем ж тогда обяснить, что вставка этих же строк в Enterprise Manager (тоже копирование) происходит мгновенно, а в Access на это уходит до 30-40 секунд? В событиях BeforeInsert, AfterInsert, BeforeUpdate, AfterUpdate ничего нет.
Enterprise Manager и QA работают через ODBC
...
Рейтинг: 0 / 0
Блокировки
    #32832933
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тебе хранимка, а дальше сам всё поймёшь, если не глуп
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE  proc dbo.Updater_PLAN
as
set nocount ON
insert into Plan1(Cost_Center_PL,Project_PL,Phase_pl,account_pl,sum_PL) 
SELECT * 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=\\pc044\special\11111.xls',
'SELECT Cost_Center_PL,Project_PL,Phase_PL,Account_PL,Sum_PL From [Th$] where (Project_pl is not Null) or Project_pl<>""')
под себя заточить не забудь!!!!!!!!!!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Блокировки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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