![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мощная заморочка ;для знатоков SQL! Помогите плз [D5, IB5.x]
John13 © (2002-10-29 12:40:00)Проблема:
Связываю два Query через DataSourse Query2->DataSourse1->Query1 и пытаюсь из Query2 обратиться к выборке Query1 по параметру скажем [:ID]. Query2 вообще-то делает Update, но глючит и модернизирует только строку соответсвующую 1-й из выборки Query1.
Добавил в Update ... Where Exists (Select ... ID=:ID) - аработало, но так тормозит :( (Все же 3 запроса выполняется: Query1, Query2.Select и Query2.Update).
Вопрос:
нельзя ли сделать как-нибудь покруче и побыстрее?
Johnmen (2002-10-30 09:50:00) [1]>Victor_Cr © (30.10.02 09:39)
В 19 лет высшее образование ? КРУТО !
А впрочем это видно по твоему постингу...
Victor_Cr (2002-10-30 09:39:00) [2]В твоем случае я бы воспользовался транзакциями. Поищи в хелпе нечто похожее на ApplyUpdates, там есть пример транзакции. У Query выставляешь свойства CashedUpdates := True; RequestLive := True;
Убираешь свой упдейт нафиг. После этого в обработчике события
BeforePost проставляешь требуемые значения полей, а в AfterPost у Query вписываешь процедуру транзакции (из хелпа). И делаешь с запросом что хочешь.
Да но запомни, что RequestLive := True; ты сможешь использовать только если в твоем запросе присутствует только одна таблица и нет в запросе order by и group by.
ЮЮ (2002-10-29 13:16:00) [3]Нарисовал бы, для начала, текст запроса и структуру таблиц, авось и без дельфи бы обошлось :-)
Советчик (2002-10-29 13:00:00) [4]незачто.
Всегда рад посоветовать
John13 (2002-10-29 12:58:00) [5]Спасибо :-\, я всегда в вас верил
Советчик (2002-10-29 12:54:00) [6]куда исходник?
вот вышли Desdechado на мыло все исходники вместе с базой данных и на всякий случай вместе с дельфи.
Я думаю, он тебе поможет...
John13 (2002-10-29 12:52:00) [7]Прислать исходник что-ли?
Советчик (2002-10-29 12:52:00) [8]да, Черномырдину до тебя далеко.
John13 (2002-10-29 12:49:00) [9]3 таблички: Строки документов, справочник изделий, справочник прайсов. Выбраны строки относящиеся к одному документу и надо их расценить по соответсвующему прайсу для каждого изделия. Формируем Query1, содержащее ID - Цена, а из второго обращаемся к нему по ID с целью проставить новую цену. В одном Update такого не сделать.
Desdechado (2002-10-29 12:46:00) [10]а цель таких махинаций? что делать надо?
Советчик (2002-10-29 12:46:00) [11]нихрена не понятно