powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как побороть? Сообщение: данные были изменены. Внесите изменения повторно..
5 сообщений из 5, страница 1 из 1
Как побороть? Сообщение: данные были изменены. Внесите изменения повторно..
    #32008403
Alexanders
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если кто подскажет, как быть, буду очень благодарен.
Дело в следующем.
Есть БД на SQL 2000. В таблице написан триггер на обновление, который пишет имя компа, время и имя юзера при обновлении записи в таблице.

Есть клиент на access 97. В форме используется присоединенная таблица SQL. Все обновляется нормально. Далее, предположим юзер ушел с записи в форме и затем решил изменить ТУ ЖЕ запись еще раз. Сразу же выдается сообщение <<данные были изменены. Внесите изменения повторно..>>
И в принципе, после второй попытки все идет как надо.
Как это дело побороть?

PS Если меняется запись №1, потом №2, потом снова №1, все прокатывает нормально и без сообщения.
...
Рейтинг: 0 / 0
Как побороть? Сообщение: данные были изменены. Внесите изменения повторно..
    #32008414
Олег Яговкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорей всего выполняется захват данных на уровне строки. Для твоего случая это могут быть методы выполнения захвата "обновляемый", "монопольный". При выполнении UPDATE сервер выполняет метод обновляемого захвата, далее при изменении данных этот метод усиливается до монопольного. Это может происходить по разным причинам кот. наверняка рассмотрены в BOL и в литературе раздел типа: блокировки, захваты, коллективный доступ к данным (это просто вариант направления в котором можно покопать). В любом случае для получения картины и выявления причины не помешает воспользоваться EM и/или SQL Server Profiler.
...
Рейтинг: 0 / 0
Как побороть? Сообщение: данные были изменены. Внесите изменения повторно..
    #32008907
Вадик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавь в таблицу, которую обновляешь, поле типа "Timestamp" c любым именем. Никогда его не трогай. Обнови в Access присоединение таблицы и все будет OK.
...
Рейтинг: 0 / 0
Как побороть? Сообщение: данные были изменены. Внесите изменения повторно..
    #32008947
Flint-San
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как-то в VB я столкнулся с таким же 'руссифицированным' сообщением. Естественно мне было не понятно, что это значит
и я нашел его аналог на английском:
0x80040E38 -2147217864 The rowset was using optimistic concurrency and
the value of a column has been changed since
it was last read
Ошибка заключается в приколе существования тригера и изменения кол-во ROWCOUNT
Достаточно установить в тригере
AS
SET NOCOUNT ON
.....
ваш код
......
SET NOCOUN OFF
GO

И таблица будет свободно редактируемая в Optimistic mode.
...
Рейтинг: 0 / 0
Как побороть? Сообщение: данные были изменены. Внесите изменения повторно..
    #32008989
alexanders
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо.
Помогли оба варианта. В силу присущей лени решил остановиться на timestamp.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как побороть? Сообщение: данные были изменены. Внесите изменения повторно..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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