Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.05;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.017 c
1-14124
ErmSergey
2002-08-23 14:46
2002.09.05
Добавление событий


1-14039
AFROLOV
2002-08-26 16:04
2002.09.05
Можно ли из Delphi использовать VB-скрипты ?


14-14262
VID
2002-08-09 15:47
2002.09.05
Нужен навороченый RichEdit


6-14199
Avallon
2002-06-30 00:06
2002.09.05
Как настроить


14-14283
kull
2002-08-09 01:44
2002.09.05
Какой рост у Дженифер Лопес?