Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Один набор данных по результатам нескольких


Автор: Lunatikus 29.10.2007, 12:32
Здравствуйте.Возникла проблема с отказом сервера выполнять запрос из-за его большого кол-ва слияний.Выдает ошибку, что время ожидания истекло. Могу сделть несколько запросов с определенными условиями,которые спокойно выполняются,но как их соединить,чтобы все отобразилось в одном гриде?Мне это НАДО.Воспользоваться промежуточной таблицей или файлом,куда заносить данные,не могу:таблица-лишнее в базе,файл тоже нежелательно.Да и множество механизмов уже надстроено так, что используют именно ADOQuery этого грида.А если буду вливать не через АДО,то и их придется переделывать.Есть ли возможность соединить три запроса в один и отправить в виде ADOQ?Задумывался об UNION.Но это же все равно одна транзакция,так что не допустить выполнения.Или я не прав?

База MS SQL 2000.

Автор: Deniz 30.10.2007, 06:51
Сделай через ХП.

Автор: Lunatikus 30.10.2007, 09:23
лаконично =) я не настолько искушен в программировании,чтобы сразу понять,к чему ты клонишь.К сожалению, так и не нашел нормального метода. Пришлось использовать глобальную временную таблицу. Инсертом туда перекинул результаты 8 выборок(которые получились по разделению условий огромной выборки) и потом уже селектом считал из таблицы все.Для небольших наборов данных выполняется медленнее,зато на больших выигрыш.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)