Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.082 c
6-1088602619
maxistent
2004-06-30 17:36
2004.09.05
Связь компов через INTERNET


14-1092596655
Vasya.ru
2004-08-15 23:04
2004.09.05
Прочитал тут, что Integer быстрее Byte и др. производных


1-1092980126
Optimizator
2004-08-20 09:35
2004.09.05
Проблемы с DBEdit


14-1092794139
Думкин
2004-08-18 05:55
2004.09.05
С днем рождения! 18 августа


14-1092443626
Думкин
2004-08-14 04:33
2004.09.05
С днем рождения! 14 августа





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский