Форум: "Базы";
Текущий архив: 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