![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
1147 |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
При удалении записей (строк) из БД, через некоторое время записи, которые были удалены, появляются снова, как-будто их не удаляли. Причем такого не происходит когда база и программа работают на пк с одним пользователем с правами администратора, на пк с несколькими пользователями есть папка с общим доступом, в которой хранится БД, каждый пользователь поочередно заходит через свой логин и пароль в систему и вносит изменения в базу. Мне кажется что удаленные записи появляются снова из-за того что были введены одним пользователем, а удаляются другим... Или может дело не в этом?
Свойство LockType ADOTable: ltBatchOptimistic. Удаление из базы MSAccess осуществляется кнопкой с кодом: procedure TForm5.BitBtn3Click(Sender: TObject); Можно ли исправить эту ситуацию, чтобы удаленные строки не появлялись снова? |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
А что в ADOTable.CursorType установлено?
|
1147 |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
ctStatic
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
ctKeyset вообще-то больше подходит для работы в многопользовательском режиме. Но вопрос не в этом. Можно чуть точнее, когда именно записи, удаленные тобой, появляются опять в наборе? При повторном подключении к базе? При перезапуске приложения? Что заставляет их появиться?
|
1147 |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
при перезапуске приложения. ctKeyset установить не удается, автоматически появляется ctStatic.
Сообщение отредактировано: 1147 - 26.11.2009 14:03 |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата ctKeyset установить не удается, автоматически появляется ctStatic. А знаешь почему? Потому что у тебя в Design-Time таблица активна, это подразумевает именно clStatic. Я делаю таблицу неактивной в дизайне, а при создании формыADOTable1.CursorType := ctKeyset;Проверил. Запустил 4 приложения, из одного удалил напрочь половину записей кнопкой с твоим кодом, запустил еще одного - все записи удалены, ничего снова не появилось... У тебя база обычная, или еще с разделением прав? То есть, пользователи заходят все с одним паролем/вообще без пароля, или как? |
1147 |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
База обычная, пароль для входа не нужен. Но несколько копий приложения одновременно запустить нельзя:
Begin Установка ctKeyset не решила проблему(. Из базы удаляется 5 записей, приложение закрывается, снова запускается. Все удаленные записи, кроме последней (пятой удаленной по счету) вернулись |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Запусти одного пользователя, удали запись. Потом открой базу и посмотри, удалилась ли она физически из БД? Как ты тестируешь программу свою? LAN?
|
1147 |
![]()
Сообщение
#9
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
В базе остаются все записи кроме последней удаленной. Возможно это изза того что на кнопке выхода такой код:
ADOTable1.UpdateBatch();хотя странно, ведь тогда кнопка удаления должна также удалять и из базы ранее удаленную запись Тестирую программу таким образом: 2 пк, один с двумя входами с правами администратора, на нем никаких проблем с восстановлением удаленных записей нет. На другом пк несколько входов для пользователей с ограниченными правами, на диске С папка в которой хранится база, все пользователи имеют доступ к этой папке. Один из пользователей вводит записи, удаляет свои же записи, после перезапуска программы, все кроме последней восстановились Сообщение отредактировано: 1147 - 26.11.2009 15:12 |
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 4:38 |