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

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

Несколько UPDATE'ов одним запросом. Возможно ли?


Страницы:   1 2

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. Так?


Страницы:   1 2

Наверх

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