Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];

Вниз

Ошибка:   Найти похожие ветки 

 
Arkady   (2003-02-18 16:18) [0]

При вызове команды Post или при удалении записи через TADOTable выводится сообщение: «Row cannot be located for updating. Some may have been changed since it was last read»?


 
Arkady   (2003-02-18 16:20) [1]

Данные не записываются. Как быть? Пожалуйста, подскажите.


 
Соловьев   (2003-02-18 16:23) [2]

Может таких данных уже нет. кто-то удалил до тебя...


 
Arkady   (2003-02-18 16:33) [3]

Нет, только один пользователь работает с данными.


 
Соловьев   (2003-02-18 16:37) [4]

а как ты позиционируешь курсор в НД? через грид?
как вообще вносишь изменения?


 
ermserg   (2003-02-18 16:40) [5]

http://www.delphikingdom.com/helloworld/ado02.htm


 
sniknik   (2003-02-18 16:43) [6]

ну возможно у тебя образовалась пара (а может и больше) одинаковых строк и он не может решить чего же ему апдейтить?

решение (если это то) добавь к таблице автоинкрементное поле (если добавить к заполненой таблице оно автоматом пересчитается) поля больше не будут идентичными и ты сможеш их апдейтить. (позже добавь ключь теблице)

добавить инкремент можно запросом
ALTER TABLE YourTable ADD COLUMN ID Autoincrement


 
oss   (2003-02-18 17:24) [7]

хех, вот он звездный час :) не одну бессоную ночь провел я за этим багом :))) по порядку, сначала причины
Ошибка эта возникает при попытки изменить данные (типа string) если до этого изменения они были NULL. Т.е. если ты всем полям где может быть текст при создании присвоишь хотя бы пробел, то такой ошибки не будет. Но это не красиво и не удобно.
Решения
1.по книжкам можно сделать так
(DataSet as TADODataSet).Properties["Update Criteria"].Value := adCriteriaKey;
т.е. это динамическое свойство доступное только после открытия.
Мне это помогло на месяца 2, потом началось тоже самое :)
2. Оптимальным будет манипуляция просто SQL, а главное все очень надежно :)


 
Arkady   (2003-02-19 12:31) [8]

Всем спасибо, удалось избавиться от данной ошибки.

> ermserg (18.02.03 16:40)
> http://www.delphikingdom.com/helloworld/ado02.htm


Особенно помог пример http://delphi.mtu-net.ru/zip/adopart2.zip

Нужно было сделать:
1. Добавить поле типа счетчик и сделать его ключевым;
2. Установить ADODataSet1.Properties["Update Resync"].Value:=NewResyncValue.

Но возникла другая проблема. При использовании TADODataSet все нормально, но если использовать TADOTable, то таблица не обновляется. Refresh не помогает. Приходится закрывать таблицу, а затем снова ее открывать. Можно сделать так, чтобы в TADOTable данные обновлялись?


 
sniknik   (2003-02-19 13:04) [9]

а ответы ты похоже невнимательно читаеш.

> .... другая проблема.

и вовсе не проблема. ADODataSet это новый компонент а ADOTable старый ("для облегчения перехода" - цитата), нужно пользоватся новым ADODataSet, ADOcommand и закинуть подальше устаревшее ADOTable и ADOQuery.
(есть такой принцип, новые версии обычно поддеживают старые возможности, но чтобы наоборот, старое поддерживало новое еще не придуманное - абсурд)

и кстати как ты думаеш Refresh работает?
посмотри в справке
ADODataSet Refresh
......
Warning:
Unidirectional datasets refresh the data by closing and reopening the cursor. This can have unintended side effects if, for example, you have code in the OnClose or OnOpen event handlers.

(может у тебя и есть однонаправленый курсор?)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.095 c
9-29692
Vadim SA
2002-10-09 17:58
2003.03.10
Глюк в DelphiX


1-29885
jen_bond
2003-02-25 23:25
2003.03.10
Код клавиш клавиатуры


1-29825
Unk
2003-02-27 16:47
2003.03.10
DLL, MDI, interfaces


14-30077
Сатир
2003-02-21 15:21
2003.03.10
Футбол


14-30086
Nimda2000
2003-02-22 11:35
2003.03.10
---|Ветка была без названия|---





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский