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

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

Необходимо составить


Эдуард ©   (2003-03-19 09:59:00) 

Необходимо составить "сложный" отчет. Без использования дополнительных таблиц не обойтись. Но при обновременном обращении к формированию этого отчета несколькими пользователями возникает конфликтная ситуация (одновременное изменение данных одной таблицы несколькими пользователями). Как же можно избежать данной конфликтной ситуации?

Заранее благодарен.


Соловьев   (2003-04-01 10:29:00) [1]

2 Эдуард
ХП как раз то. Туда и параметры передавай те что пользователь задает.


zacho   (2003-04-01 10:26:00) [2]


> Эдуард (01.04.03 10:16)

Ну и что ? У меня тоже отчеты формируются по произвольным интервалам, но хранимых процедур мне вполне достаточно.


Эдуард   (2003-04-01 10:16:00) [3]

Дело в том, что разный интервал дат использует пользователь


zacho   (2003-04-01 09:07:00) [4]


> Эдуард (31.03.03 23:10)

> Sergey13 © (19.03.03 10:22) тебе правильно посоветовал.
А ты уверен, что возможностей хранимых процедур тебе недостаточно ?
P.S. Для ускорения (и упрощения) рассчетов можно не проводить агрегирование каждый раз при формировании отчета, а создать постоянныетаблицы для хранения нужных агрегатов и заполнять их из триггеров.


Эдуард   (2003-03-31 23:10:00) [5]

Нет агрегирование не получается


DarkGreen   (2003-03-19 11:43:00) [6]

А разве нельзя в одном запросе провести все необходимое тебе агрегирование?


Sergey13   (2003-03-19 11:15:00) [7]

2Эдуард (19.03.03 10:59)
А ты их (таблицы эти) каждый раз создаешь что ли?


Эдуард   (2003-03-19 10:59:00) [8]

В принципе правильно, я использую временные таблицы для предварительной выборки (с использованием агр.ф-ции SUM), а затем формирую запрос к этой временной таблице с использованием агрегатной функции SUM.

Вопрос как создать временную таблицу так, чтобы она была недоступна другим пользователям во время формирования запроса.
Может использовать VIEW с каким то уникальным именем для каждого пользователя?

Заранее благодарен!


Sergey13   (2003-03-19 10:22:00) [9]

2Эдуард (19.03.03 09:59)
Можно попробовать дополнить структуру временных "дополнительных таблиц" сведениями о пользователях-"владельцах" записи.


zacho   (2003-03-19 10:21:00) [10]


> Эдуард (19.03.03 09:59)
> Необходимо составить "сложный" отчет. Без использования
> дополнительных таблиц не обойтись.

Т.е. для формирования отчета сначала производится выборка в эти самые дополнительные таблицы ? В подавляющем большинстве случаев можно обойтись без дополнительных таблиц, используя хранимые процедуры с FOR SELECT ..

> Но при обновременном обращении к формированию этого отчета
> несколькими пользователями возникает конфликтная ситуация
> (одновременное изменение данных одной таблицы несколькими
> пользователями).

Скорее всего, неправильно спроектированы таблицы. Приведи описание структуры таблиц, может чего и посоветуем.


Johnmen   (2003-03-19 10:18:00) [11]

А не надо создавать временные таблицы в базе !
Создай виртуальную таблицу в памяти при работе приложения...Если уж никак не обойтись просто запросом(ами).


Жук   (2003-03-19 10:15:00) [12]

С помощью транзакций.


Наверх

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