![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько UPDATE'ов одним запросом. Возможно ли?
StriderMan © (2006-07-24 15:20:00)Использую firebird + IBX(компоненты).
конкретно интересует можно ли провернуть такое при помощи IBUpdateSQL
StriderMan (2006-07-25 14:19:00) [1]
> Danilka © (25.07.06 14:06) [27]
попробую, спасибо
Danilka (2006-07-25 14:06:00) [2][26] StriderMan © (25.07.06 13:44)
Представление это вьюха. create view as ...
и триггера на ней, почти как на таблице, на инсерт, апдейт и делете.
а на клиенте селект из вьюхи, а не из двух таблиц.
StriderMan (2006-07-25 13:44:00) [3]
> Удобно в такой ситуации создать соответствующее кол-во обновляемых
> представлений
а можно подробнее о представлениях? в двух словах
atruhin (2006-07-25 12:06:00) [4]Удобно в такой ситуации создать соответствующее кол-во обновляемых представлений. Тогда можно работать как с обычной таблицей.
StriderMan (2006-07-25 00:04:00) [5]
> DiamondShark © (24.07.06 21:20) [23]
> > Соответственно для редактирования/добавления понадобится
> > 10 хранимых процедур.
> И что в этом страшного?
да, 10 это еще ничего, но поразмыслив, я решил что их будет как минимум 20! т.е. по 2 процедуры на таблицу: UPDATE и INSERT. Хотя в принципе тоже ничего криминального... те же самые 20 запросов придется писать на клиенте...
Вобщем уже сделано по [11], и работает вполне корректно, хотя согласен, не слишком красиво.
DiamondShark (2006-07-24 21:20:00) [6]
> Соответственно для редактирования/добавления понадобится
> 10 хранимых процедур.
И что в этом страшного?
StriderMan (2006-07-24 19:09:00) [7]
> Если есть такое желание, рекомендую пересмотреть концептуальную
> модель.
Ясно, так и думал :)
Если с [11] будет криво работать, видимо придется пересмотреть.
Desdechado (2006-07-24 18:51:00) [8]При такой взаимосвязи вряд ли рационально редактирование сразу главной и вспомогательной таблиц.
Если есть такое желание, рекомендую пересмотреть концептуальную модель.
StriderMan (2006-07-24 18:48:00) [9]
> толькотам пропиши не банальный UPDATE ..., а вызов процедуры
я так и понял, но повторю, что таких связок существует около 10. т.е.:
Главная таблица с общими параметрами
10 вспомогательных таблиц связанных с главной, у каждой свой набор полей.
10 Датасетов с запросом типа ГЛАВНАЯ JOIN ВСПОМОГАТЕЛЬНАЯ,
Соответственно для редактирования/добавления понадобится 10 хранимых процедур.
Desdechado (2006-07-24 18:43:00) [10]Если твой датасет (в рамках бизнес-операции) работает с соединением нескольких таблиц, то поля у тебя уже есть в датасете. И в UpdateSQL они попадут. Вот толькотам пропиши не банальный UPDATE ..., а вызов процедуры.
StriderMan (2006-07-24 18:39:00) [11]
> это зачем же для каждой??
> а для бизнес-операции
но ведь в каждой таблице свой набор полей, как их одной процедурой передавать.
Desdechado (2006-07-24 18:36:00) [12]Нужно ХП не для таблицы, а для бизнес-операции, которая раскидывает данные по таблицам согласно бизнес-правил.
Desdechado (2006-07-24 18:31:00) [13]Это элемент бизнес-логики на сервере, не зависящий от клиента.
stud (2006-07-24 18:31:00) [14]StriderMan © (24.07.06 18:05) [14]
но это для каждой таблицы ХП писать. а их там штук 10
это зачем же для каждой??
StriderMan (2006-07-24 18:05:00) [15]
> Desdechado © (24.07.06 18:04) [13]
думал над этим...
но это для каждой таблицы ХП писать. а их там штук 10.
Desdechado (2006-07-24 18:04:00) [16]А что, хранимка для сохранения изменений уже не в моде?
Johnmen (2006-07-24 17:16:00) [17]Хм... Тогда уж к TIBDataSet наследника сделал бы...
StriderMan (2006-07-24 17:00:00) [18]Вобщем решил проблему написанием наследника компонента IBUpdateSQL. Добавил св-во SQLDelimeter, которое позволяет написать в каждом запросе (ModifySQL, InsertSQL и т.д.) несколько запросов через разделитель.
StriderMan (2006-07-24 16:47:00) [19]нет, дисковое пространство ни при чем. просто из одной таблицы сделали две: одну общую для нескольких справочников, и несколько частных, связанных с общей 1 к 1. а редактировать данные нужно в одной форме.
Sergey13 (2006-07-24 16:33:00) [20]2 [8] StriderMan © (24.07.06 16:24)
> связь 1 к 1.
> неплохо бы конечно, но уже есть куча форм для редактирования,
> которые не хочется менять (они раньше редактировали в пределах
> 1 таблицы). Хочется просто перецепить на новые DataSet'ы
> и не париться.
Подозреваю, что раньше и была 1 таблица, но решили съэкономить дисковое пространство и разделили на 2. Так?