![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение с сортировкой [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