Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Люди добрые!!! Нужна срочно помощь!!! [D5, Paradox]


Fbist ©   (2002-08-16 08:11:00) 

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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


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

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


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

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


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

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

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



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

Попробую выдрать из контеста код:
Процедура сохраняет в базе данные из объекта 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... :(
Структура файлов значения не имеет. Объекты идентифицируются по уникальному полю-ключу.


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

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


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

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


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

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

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


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

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


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

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


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

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


SaS13   (2002-08-16 08:48:00) [19]

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


Fbist   (2002-08-16 08:22:00) [20]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо