Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADO Access Трансакции и многопольз.работа, блокировка базы при трансакциях 
:(
    Опции темы
kulibin
  Дата 13.8.2005, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3



Возникла такая проблема: аксес не даёт доступа к бд другим процессам при открытии трансакции в одном из процессов
Мне нужно при многопользовательской работе с этой бдой пользоваться трансакциями.
Или может как то по другому - суть в том, что с бд проводятся длительные операции по удалению и вставке записей. Пока не закончен блок операций - другим пользователям не обязательно видеть этот полуфабрикат. А если открыть трансакцию - аксес рубит всем доступ к бд.
Может кто сталкивался с таким? Можно ли вообще в аксесе использовать трансакции при многопользовательской работе. Или как-то по другому сделать то же.

Это сообщение отредактировал(а) Akina - 13.8.2005, 19:16
PM MAIL WWW ICQ   Вверх
Akina
Дата 13.8.2005, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Транзакция в Аксессе - это подпорка. Она предполагает безусловную блокировку изменяемой таблицы.

Выход: изготовить временную копию таблицы, провести в ней обновление, после чего:

заблокировать основную таблицу, удалить ВСЕ записи и затем вставить все записи из временной таблицы.

или

удалить основную таблицу, переименовать временную в основную.

Модератор: Проверяйте орфографию в своих постингах. Пожалуйста.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kulibin
Дата 13.8.2005, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3



Да уж . . . аксес, блин
пора его менять на что-то - это так, лирическое отступление
спасибо за совет - съэконимили мне массу времени.
буду пробовать темпорари тейбл. Интересно - он то в аксесе если создал его один процесс - другим виден, или прийдётся как-то руками обеспечивать уникальное имя таблицам? Попробую.
PM MAIL WWW ICQ   Вверх
Akina
Дата 14.8.2005, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



если это действительно temporary table - кроме владельца-создателя ее видит только администратор базы... при условии что работает секьюрность, а то все админы и все видят... с другой стороны, чтобы работать с базой неизвестной тебе структуры - это какой код написАть надо (не, как - я знаю, но зачем?)... а сгенерить уникальное имя временной таблицы - раз плюнуть...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kulibin
Дата 15.8.2005, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3



Та да. Сроки просто поджимают - не хотелось сильно в творческие поиски углубляться. Да и человек я такой - никакой дисциплины. Мне токо дай - так я и забуду что надо было сделать.
Спасибо.
PM MAIL WWW ICQ   Вверх
leniviy
Дата 23.8.2005, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 552
Регистрация: 8.2.2003
Где: Спб

Репутация: нет
Всего: 5



kulibinМожно вопрос? Как так получилось, что перекачка таблицы целиком быстрее, чем непосредственное обновление данных? Если Ваша прога в режиме открытой транзакции ждет ответа пользоваетеля, то, имхо, можно использовать отвязанный ado recordset в режиме BatchOptimistic: все изменения данных будут в памяти, пока на OK не нажмешь ( если конечно на ado писать )
PM MAIL   Вверх
kulibin
Дата 23.8.2005, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

Репутация: 2
Всего: 3



я без рекордсета: connection.exequt "insert into . . .", adaffectnorecords
Почему? вопрос интересный - но сложный.
прикол не в том, чтобы пользователь нажал "ок" - просто в из таблицы удаляется большой объём данных а потом из excel заливается построчно такой же.
Пока идёт эта операция остальные пользователи должны видеть таблицу с удаленными записями, а не с частично добавленными.
Не пользовался отвязным рекордсетом - и не умею.(токо из ado.net знаю что это такое - немного). Но вот какая штука - удаляю я большое к-во записей так: "delete from price where post='" "dfgdf" "'" - по нескольку тысяч(3-10). А если с рекордсетом - то построчно? это дополнительные тормоза.
Вообще тема интересная - токо надо будет подчитать про отс.рекордсет - может и можно что-то придумать с ним на эту тему.
В любом случае - спасибо.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0692 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.