![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему Table is read only [D5, MSSQL]
Валерий © (2005-06-28 15:10:00)На форме : Query, в нем SQL.text :
select treaty_id, treaty_num from treaty_arenda.
В таблице одно ключевое поле, identity нет.
В Query поставлено RequestLive и CachedUpdates в true.
В SQLUpdates на Modyfi все сформировано корректно: одно ключевое поле, одно для редактирования.
Редактирую в Gride поле, и стрелкой вниз .
OnAfterPost стоит Query1.ApplyUpdates; а
OnUpdateRecord - UpdateSQL1.Apply (UpdateKind);
Вот на этой последней строке оно и вырубается при нажатии стрелки
В UpdatesSQL на Modify имею:
update treaty_arenda
set
treaty_num = :treaty_num
where
treaty_id = :OLD_treaty_id
В процедурках:
procedure TForm1.FormShow(Sender: TObject);
begin
Query1.Open;
end;
procedure TForm1.Query1AfterPost(DataSet: TDataSet);
begin
Query1.ApplyUpdates ;
end;
procedure TForm1.Query1UpdateRecord(DataSet: TDataSet;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
UpdateSQL1.Apply (UpdateKind);
end;
Причем UpdateKind = ukModify !!!
и строку она эту UpdateSQL1.Apply (UpdateKind); проходит
а вырубается только на END;
с сообщением table is read only
Уважаемые знатоки, что я делаю неправильно, объясните пожалуйста начинающему осваивать Delphi.
Johnmen (2005-06-29 09:39:00) [1]Про работу с кешируемыми НД очень подробно и с примерами написано в F1. Странно, что ты начал не с неё...:)
Валерий (2005-06-29 09:32:00) [2]Похоже, что достаточно только Query1.ApplyUpdates без
SQLUpdates1.Apply(UpdateKind).Да и нельзя его ставить после поста. Повесил его на кнопку - все срабатывает даже без компонента SQLUpdates (таблица в нем всего одна), лишь бы Query был кешируемый.
evvcom (2005-06-29 08:30:00) [3]
> т е раньше
Не раньше. Просто у тебя в этом случае нет твоего кода, выполняющегося между ApplyUpdates и ошибкой, а в первом случае был.
> несмотря на ошибку поле редактируется
А я уж хотел предложить посмотреть не ReadOnly ли файл?
Валерий (2005-06-28 15:29:00) [4]Johnmen:
Пробовал без UpdateSQL1.Apply (UpdateKind);
вырубается уже на Query1.ApplyUpdates, т е раньше, причем в этом случае та же ошибка и кроме того реально НЕ редактирует
Валерий (2005-06-28 15:22:00) [5]забыл важное: реально, несмотря на ошибку поле редактируется (проверял - выходил из проги, входил), и еще странность: после всех прожатий реакции на ошибку остаюсь в том же отредактированном поле, хотя была нажата стрелка вниз.
Johnmen (2005-06-28 15:19:00) [6]>Вот на этой последней строке оно и вырубается при нажатии стрелки
Ну да. Она же бессмысленна, и просто вредна...:)