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

Вниз

Люди добрые!!! Нужна срочно помощь!!!   Найти похожие ветки 

 
Fbist   (2002-08-16 08:11) [0]

Пишу на Дельфи5 с применением ADO. В общем суть такая: открываю таблицу TADOTable, делаю Locate на нужную запись, вызываю метод Edit, затем заменяю значения в этой записи, потом делаю Post и УЖАС! Вылетает такая ошибка: "Не удаётся найти строку для обновления. Некоторые значения могли быть изменены со времени её последнего чтения". Сроки жмут, а я уже 3 дня завис из-за этого... Может где-то туплю, решение чувствую, должно быть простым. Буду рад любым намёкам на зародыш этой проблемы! Заранее спасибо! Андрей Д.


 
Fbist   (2002-08-16 08:22) [1]

Ну или подскажите, что это за ошибка такая...


 
SaS13   (2002-08-16 08:48) [2]

Попробуй обновить ADO.


 
Виталий Панасенко   (2002-08-16 08:48) [3]

Попробуй перейти на Д6. Помоему это изврат, работать с парадоксом не через БДЕ ;-)))


 
Fbist   (2002-08-16 09:00) [4]

Да мне надо было что-то простенькое и чтоб таблицы в отдельных файлах (активный экспорт импорт). Вот и подошли Paradoxики. А ADO - исключительно из-за встроенности в ОС - чтоб не распространять BDE...
ADO менять нежелательно... :( Прога будет ставиться на разных компах, в том числе которые ещё на Win95... А новые ADO требуют ещё кучу всего доустановить там...


 
Mike Kouzmine   (2002-08-16 09:34) [5]

есть версия BDE и для доса, только она 2 с чем-то. А что, БДЕ спид или сифилис, что ты боишься его распространять?


 
Fbist   (2002-08-16 10:14) [6]

Шутник! :)
У меня одно из требований - минимизация дистрибутива!

Чего то всё не то говорите, как уйти от проблемы - а мне бы причину найти и устранить... :)


 
Mike Kouzmine   (2002-08-16 10:18) [7]

Хочешь - помогу, только пришли код, структуру файлов. Ну что- нибудь, чтобы понять, что ты хочешь и что для этого ты делаешь.
А лучший способ избавиться от проблемы - это не создавать их. (Шутка)


 
Johnmen   (2002-08-16 10:45) [8]

А вот интересно, ключи были созданы для таблиц ?


 
Fbist   (2002-08-16 11:52) [9]

Попробую выдрать из контеста код:
Процедура сохраняет в базе данные из объекта Item, передаваемого через параметр. Краткие комментарии по тексту

function TController.SaveItem(Item:TItem):boolean;
begin
Result:=False;
if FTable.Active then // Таблица - глобальная переменная
if Item.IsChanged then // Если были изменения
begin
if FTable.Locate("ID",Item.ID,[]) then // Если есть такой объект в базе
begin
FTable.Edit; // редактирование
Result:=Obj2DB(Item); // Записываем объект в текущую запись
end else
begin
FTable.Append; // Добавляем запись
Result:=Obj2DB(Item); // Записываем объект
end;
if Result then // если всё пучком
begin
FTable.Post; // Сохраняем изменения
Item.FIsChanged:=False; // Типа объект уже не изменён
end;
end else Result:=True; // Всё ништяк
end;

Валится или в Locate или в Post... :(
Структура файлов значения не имеет. Объекты идентифицируются по уникальному полю-ключу.


 
Fbist   (2002-08-16 11:58) [10]

Процедура Obj2DB представляет собой следующее:

FTable["Имя поля"]:=Item.Имя_свойства;
...




 
Fbist   (2002-08-16 12:01) [11]

С ключами - порядок! :)


 
Mike Kouzmine   (2002-08-16 12:03) [12]

Может правда, надо проапдейтить ADO? Если бы не валилась на Locate...


 
Mike Kouzmine   (2002-08-16 12:08) [13]

функция Obj2DB, а в каком случае она возвр. False. Просто интересно.


 
Fbist   (2002-08-16 12:09) [14]

А куда апдейтить? Я и так на 2000 виндах сижу... Вроде не старое ADO...

Кстати, попробовал перед Locate вставить FTable.UpdateCursorPos - и валиться перестало. Но на Post всё равно валится... :(


 
Mike Kouzmine   (2002-08-16 12:11) [15]

Ну а делфи то у тебя какие.


 
Fbist   (2002-08-16 12:11) [16]

Obj2DB возвращает False в случае, если таблица закрыта. То есть не инициализирована или в процессе изменения другими модулями.


 
Fbist   (2002-08-16 12:13) [17]

дельфи - 5. с патчами.


 
SaS13   (2002-08-16 12:14) [18]

Fbist © (16.08.02 11:52)
Если все пучком - идет Post, а если нет - ???, надо Cancel наверное како-нить поставить, а то НД в режиме редактирования или вставки...


 
Fbist   (2002-08-16 12:19) [19]

:) Пока что всё только пучком. По другой ветке алгоритм не бегает. Но спасибо за поправку. Вставлю. Cancel.


 
Mike Kouzmine   (2002-08-16 12:20) [20]

Ты проводишь проверку на откр до ее вызова, но это к делу не относиться.
Правильно. (Cancel)



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

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

Наверх





Память: 0.48 MB
Время: 0.007 c
7-14312
Озадаченный
2002-06-11 15:54
2002.09.05
Вопрос


4-14356
S@rge
2002-07-03 01:00
2002.09.05
CreateRemoteThread в Win98


4-14350
tamerlan311
2002-07-07 00:10
2002.09.05
иконка от определенного типа файла


7-14289
Loverest
2002-06-23 16:29
2002.09.05
Как программно включить NumLock?


14-14282
Карлсон
2002-08-12 19:12
2002.09.05
Где можно раздобыть толковый гайд по Фотошопу?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский