Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизИсключить поле из update Найти похожие ветки
← →
Goffman (2004-08-12 13:34) [0]Уважаемые коллеги, подскажите как можно исключить поле из из update-запроса при редактировании DataSet
Дело в том, что текст SQL выглядит примерно такselect t.rowid, t.*, get_marsh_bevel(marsh_id) bevel_val
from marsh t
т.е. последнее поле я выбираю из другой таблицы при помощи ХП, хотелось бы и заполнять его при помощи ХП.
Использую Oracle, DOA
← →
Desdechado © (2004-08-12 13:57) [1]так в чем сложность?
не можешь что ли перечислить нужные тебе поля? или решил на автоматику положиться?
← →
Goffman (2004-08-12 14:11) [2]
> так в чем сложность?
В том, что этого поля нет в таблице marsh
поэтому, если я выполню что-нибудь вродеwith dsMarsh do
begin
Edit;
FieldByName("bevel_val").AsInteger:=1;
Post;
end;
то на оракле выполнится запросupdate MARSH
set BEVEL_VAL = :v58
where rowid = :doa__rowid
returning rowid into :doa__rowid
и вылетит законная ошибка Invalid column name
Вот я и не знаю, как сделать так, чтобы это поле bevel_val не включалось в update
← →
DenK_vrtz © (2004-08-12 14:19) [3]>Вот я и не знаю, как сделать так...
написать вьюху и триггер к ней (это как вариант)
← →
Sergey13 © (2004-08-12 14:25) [4][2] Goffman (12.08.04 14:11)
Да просто на поле в датасете ридонли в тру поставить.
И зачем, скажи, если тебе не надо редактировать это поле, ты делаешь
with dsMarsh do
begin
Edit;
FieldByName("bevel_val").AsInteger:=1;
Post;
end;
?
Не делай.
← →
Наталия © (2004-08-12 14:28) [5]А тогда зачем так:
with dsMarsh do
begin
Edit;
FieldByName("bevel_val").AsInteger:=1;
Post;
end;
Сам же говоришь "хотелось бы и заполнять его при помощи ХП".
Так и вызывай ХП, а не Edit;
FieldByName("bevel_val").AsInteger:=1;
Post;
← →
Goffman (2004-08-12 14:46) [6]
> [3] DenK_vrtz © (12.08.04 14:19)
Это конечно решение, но мне просто неохота городить такой огород, если учесть что эта вьюха нигде не будет больше использоваться )
> ALL
Задумка такая, чтобы я смог редактировать поле, скажем, в DBGrid`e, a в обработчике OnApplyRecord вызвать для сохранения этого поля ХП.
← →
Наталия © (2004-08-12 14:49) [7]А сам update-запрос из DataSet как выглядит?
← →
Goffman (2004-08-12 14:52) [8]
> [7] Наталия © (12.08.04 14:49)
см. [2] Goffman (12.08.04 14:11)
← →
Sergey13 © (2004-08-12 14:54) [9]2[6] Goffman (12.08.04 14:46)
Ну дык Post и перехватывай. И делай там что надо.
2[7] Наталия © (12.08.04 14:49)
Его ДОА сам генерит.
← →
Goffman (2004-08-12 17:19) [10]Все, вроде решил проблемку :)
Установил свойство FieldKind поля в fkInternalCalc,
В обработчике OnValidate вызываю ХП процедуру
Всем спасибо!
← →
Desdechado © (2004-08-12 19:34) [11]2 Sergey13
я поэтому и говорил, что автор решил на автоматику положиться...
если бы в OnApplyRecord он сам формировал запрос, все было бы ок
← →
Goffman © (2004-08-13 06:06) [12]
> если бы в OnApplyRecord он сам формировал запрос, все было
> бы ок
Да нет, не все )
В таблице около 80-ти полей, из-за одного поля писать такой огромный запрос...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.033 c