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

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

Такой глуповатеньки вопросик по IBX7.x TIBDataSet


Rule ©   (2004-11-02 11:13:00) 

допустим я делаю выборку по нескольким таблицам, например
select a.id, a.name, b.id_table1, b.name from
  table1 a, table2 b
  where b.id_table1=a.id

так вот как мне сделать так чтоб модифицировались записи в нескольких таблицах, тоесть вопрос заключается, могу ли я написать в ModifySQL  код, который модифицирует несколько таблиц (в нашем случае 2), если да то как это сделать ??

спасибо всем заранее ...


Rule   (2004-11-03 11:33:00) [1]

Все, сделал, у меня в представлении (вьюхе) собраны 6 таблиц и я сделал тригер он апдейт при котором обновляются все таблицы в зависимости от введенных данных и в конце стоит exit  для того чтобы не возникало исключение что вью только для чтения, вот так я решил эту проблемму, спасибо всем кто помогал :)


Rule   (2004-11-02 14:05:00) [2]

Sergey_Masloff   (02.11.04 13:56) [8]
хм... действительно хорошая идея по поводу вьюхи, спасибо большое


Sergey_Masloff   (2004-11-02 13:56:00) [3]

Rule ©   (02.11.04 11:46) [4]
>можно действиетльно в модифиSQL  прописать вызов к хранимой >процещуре, вот только будет ли там работать  вызов процедуры ?
Будет но будет вызывать Exception так как при выполнении обычного SQL сервер после выполнения сообщает сколько записей он проапдейтил а компонент проверяет их число - по его мнению оно должно быть ровно 1. 0 или больше 1 вызовет исключение. Именно его нужно перехватить и погасить. Я так делал - кривовато но работает надежно естественно нужно ловить только конкретное исключение.
 Вариант 2 - Вьюха с триггерами. В стародавние времена с этим случались у Интербейса проблемы но сейчас клянутся что все пофиксили.


Sergey_Masloff   (2004-11-02 13:48:00) [4]

Rule ©   (02.11.04 11:46) [4]
>можно действиетльно в модифиSQL  прописать вызов к хранимой >процещуре, вот только будет ли там работать  вызов процедуры ?
Будет но будет вызывать Exception так как при выполнении обычного SQL сервер после выполнения сообщает сколько записей он проапдейтил а компонент проверяет их число - по его мнению оно должно быть ровно 1. 0 или больше 1 вызовет исключение. Именно его нужно перехватить и погасить. Я так делал - кривовато но работает надежно естественно нужно ловить только конкретное исключение.
 Вариант 2 - Вьюха с триггерами. В стародавние времена с этим случались у Интербейса проблемы но сейчас клянутся что все пофиксили.


Rule   (2004-11-02 12:11:00) [5]

Johnmen ©   (02.11.04 12:00) [5]
2. Какая такая обработка при UPDATE ? Просто запрос.
я имел ввиду что в TIBDataSet  событие OnUpdate  в нутри него надо писать логическую часть обномления записи по несокльким таблицам ... вот я про что


Johnmen   (2004-11-02 12:00:00) [6]

>Rule ©   (02.11.04 11:43) [3]

1. Пробовать надо. А если не 2 а 6, то увы...
2. Какая такая обработка при UPDATE ? Просто запрос.


Rule   (2004-11-02 11:46:00) [7]

Sergey_Masloff   (02.11.04 11:36) [2]
чегото не совсем понятно, но в общем принцип понял ... можно действиетльно в модифиSQL  прописать вызов к хранимой процещуре, вот только будет ли там работать  вызов процедуры ?


Rule   (2004-11-02 11:43:00) [8]

Johnmen ©   (02.11.04 11:29) [1]

1. Указать в добавок UpdateObject.
а чего, тогда сразу 2 апдейта выполняется или одик перекрывает другой, а если таблицы не 2 а 6?

OnUpdateRecord
хм-м-м, а не будет ли это тормозится, этож фактически получается обработка на стороне клиента


Sergey_Masloff   (2004-11-02 11:36:00) [9]

Или делать в Update вызов ХП и гасить эксепшн который возникнет когда сервер не пришлет весточку что он обновил ровно 1 запись.


Johnmen   (2004-11-02 11:29:00) [10]

Нет.
Но можно попробовать
1. Указать в добавок UpdateObject.
2. Прописать OnUpdateRecord.


Наверх

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