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

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

Сохранение с сортировкой [D7, dBase, FoxPro]


Endi ©   (2003-05-14 00:15:00) 

Каким образом сохранить то, что получивлось вследствие запроса причем в отсортированном виде.
Наример:
SELECT Fid1,Fld2,Fld3 FROM Table2 INTO Table2 ORDER BY Fld1
или
INSERT INTO Table1 (Fld1,Fld2,Fld3)
SELECT * FROM Table2 ORDER BY Fld1
так не работает.
Так как в базе много записей, а при выборке сначала создается буфер, то потом, используя проиндексированный TTable, перегонять записи с помощью программы занимет слишком много времени.
Так же функция BDE DBiSortTable сортирует слишком долго, при этом либо в новую таблицу, либо в старую таблицу приплюсовывает к записям, которые сама же и сортирует(или я что-то неправильно понял в описании этой функции, но у меня она работает именно так).
Слышал, что можно как-то, с помощью JOIN решить данный вопрос,но как к сожалению не знаю.
Или может быть вариант с созданием подзапросов?
Не знаю, если кто-нибудь, что-нибудь знает по этой проблеме, помогите пожалуйста.
(А то уже крыша едет от этой сортировки!!!).


Соловьев   (2003-05-15 09:38:00) [1]


> Сортировка исходных данных каждый раз перед составлением
> таблицы будет занимать слишком много времени.

неужели? создаешь индекс или в select пишешь order by...


Dred2k   (2003-05-14 20:40:00) [2]


> SELECT Fid1,Fld2,Fld3 FROM Table2 INTO Table2 ORDER BY Fld1

Что-то впечатляет эта фраза... Интересен диалект ;) BDE так не пашет, поэтому может статься, что ты что-то спутал.


> INSERT INTO Table1 (Fld1,Fld2,Fld3)
> SELECT * FROM Table2 ORDER BY Fld1

Это не сработает в условиях явного перечисления присваиваемых при вставке полей, когда выборка идет "на звезду".

По вопросу в принципе могу посоветовать продумать основательнее взаимодействие процессов в схеме, т.е. разделение обязанностей между клиентскими прилодениями, осуществляющими формирование инфы и ее последующий анализ. Тут еще и мощности платформы интересны... Если задача сверхдинамична на анализе - лучше полноценный адекватно настроенный сервак. Или уж "моща во плоти" (причем через тонкий мидасовский, хотя бы, механизм).
Ну вот, пара мыслей... ;)


Endi   (2003-05-14 20:07:00) [3]


> ты туда же передаешь данные из НД? так его и сортируй...

НД постоянно менятся, а составлять отсортированную таблицу, состоящую из разных полей разных файлов базы, нужно периодически, примерно около 50 раз в день. Сортировка исходных данных каждый раз перед составлением таблицы будет занимать слишком много времени.


Соловьев   (2003-05-14 17:55:00) [4]


> Просто после сохранения будет производится создание отчета
> через Excel,

ты туда же передаешь данные из НД? так его и сортируй...


Endi   (2003-05-14 17:48:00) [5]

Просто после сохранения будет производится создание отчета через Excel, а сортировать в Excele - это просто садо-мазохизм какой-то, причем такую большую таблицу.


Соловьев   (2003-05-14 10:15:00) [6]


> Сохранение с сортировкой

зачем тебе это? а нельзя ли потом когда тебе нужны отсортированые, просто взять и отсортировать при выборке?


Фикус   (2003-05-14 08:39:00) [7]

INSERT INTO Table1 SELECT * FROM Table2 ORDER BY Fld1


Наверх

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