Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Старая песня о "Row cannot be updated" / 10 сообщений из 10, страница 1 из 1
08.08.2003, 15:29
    #32231349
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
Обращаюсь к мастерам Акцеса, т.к. база в .mdb (Access XP), а пишется все на Дельфе 7. Все на ADO.
Вставляю (программно) в базу запись, потом через секунды редактирую (программно) - выдается ошибка (сабж). Типа "некоторые значения были изменены со времени последнего прочтения". До перехода на ADO такого не было. Мне сказали, что это может быть из-за значений по умолчанию для полей. Убрал. Не помогает. Помогло сделать Refresh для этой таблицы, перед тем как редактировать запись. Тогда ошибка не появляется и все ок.

Как сделать без рефреша?
...
Рейтинг: 0 / 0
08.08.2003, 15:32
    #32231357
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
Можно было, конечно, код привести, но я, например, возможно ничего не пойму.
Навернека где-то "напортачил" с адо.
...
Рейтинг: 0 / 0
08.08.2003, 15:45
    #32231387
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
Возможно что и напортачил, но с BDE все работало ок.

А код примерно такой:

Код: plaintext
1.
2.
Table1.Insert; // В режим вставки
Table1Field1.Value := 'Test';  // Вставляем в поле некое значение
Table1.Post;   // Подтверждаем изменения


Далее, по нажатию юзверем кнопочки:

Код: plaintext
1.
2.
Table1.Edit; // В режим редактирования
Table1Field2.Value := 'Test';  // Вставляем в поле некое значение
Table1.Post;   // Подтверждаем изменения


И вот тут ошибка. При чем изменения проходят - после ошибки данные сохраняются и все ок. Но потом если изменить положение курсора - скажем в Grid'e, опять таже ошибка. И с этой записи курсор не уходит. Так на ней и сидит пока не закроешь таблицу.

Код весьма примитивен, я думаю ошибка где-то в настройках компонентов ADO или особенности какие. Не знаю уже к кому обратиться.

P.S.: Что мне нравиться в форуме по Access - быстро участники реагируют. Не успеешь написать вопрос - уже отвечают. :-)
...
Рейтинг: 0 / 0
08.08.2003, 15:49
    #32231394
progist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
Попробуй убрать Table.Post из первого раза, пусть обнавляется запись один раз в конце.
...
Рейтинг: 0 / 0
08.08.2003, 16:07
    #32231433
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
Я забыл сказать, что между первым куском кода и вторым нет связи. Т.е. второй кусок кода выполняется через неопределенное время. Юзер может побегать по записям, поглядеть чё там как у него и т.д. А потом уже нажать кнопочку, чтобы выполнялся второй кусок. Или вообще не нажимать - тут такое дело... ;-)
...
Рейтинг: 0 / 0
08.08.2003, 16:29
    #32231478
progist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
После вставки записи, нужно ее сохранить, что и делает метод Refresh, после этого можно править. Тогда ошибка блокировки не будет возникать.
...
Рейтинг: 0 / 0
08.08.2003, 17:31
    #32231544
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
Я вообще-то думал, что Refresh - это обновление таблицы. Т.е. последние изменения сделанные юзерами становятся видимыми. При чем тут "нужно ее сохранить, что и делает метод Refresh"? Может это так в VB организовано? Хотя странно - слово Refresh имеет значение вполне конкретное в английском языке...
Сохранение - это как раз Post. Проблема в том, что ошибка возникает только в одной группе идентичных по логике блоках кода. В другой группе с такой же логикой - нет. Вот в этом-то вся и загвоздка.
...
Рейтинг: 0 / 0
08.08.2003, 18:16
    #32231581
progist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
У тебя происходит что-то с блокировкой, но что - из твоего кода не понятно
В данном случае Refresh - это не обновление таблицы, а повторный запрос к таблице, т.е. обновление источника данных RecordSource. Источником данных формы (я понимаю, что... стоп, расскажи подробнее, как :
< Вставляю (программно) в базу запись, потом через секунды редактирую (программно)
...
Рейтинг: 0 / 0
08.08.2003, 18:51
    #32231621
Gluck99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
Программно - я имел в виду by code. Т.е. не через Grid юзер редактирует/вставляет записи, а код программы. Что с блокировкой надо мутить - это понятно. Непонятно другое: на код не замыкайся, от него как я установил, не зависит. У меня такая же ошибка появлялась когда я добавлял/редактировал записи в Grid'e просто. Правда Grid не стандартный Delphi, а DevExpress'овский (если это о чем-то говорит). После того как я убрал значения по умолчанию для новых полей - ошибки при прямом редактировании через Grid исчезли, но ошибки при программном изменении таблицы остались.
...
Рейтинг: 0 / 0
08.08.2003, 20:14
    #32231671
progist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Старая песня о "Row cannot be updated"
Покажи команды ADO
И еще, как коннктишся к .mdb
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Старая песня о "Row cannot be updated" / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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