![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто нить делал такое? [D6, Paradox]
Afreet © (2002-07-25 07:29:00)У меня есть таблица Paradox, в которой 400000 записей. Необходимо организовать чтение таблицы кусками по 500 записей, чтобы программа не висла. Таблица содержит следующие поля: Field1(DATETIME), Field2(INTEGER), Field3(INTEGER), Field4(FLOAT). По первым трём полям организован ключ. SELECT я использую примерно так: SELECT TOP 500 * FROM Таблица. Первый кусок я прочитываю без проблем, а вот как дальше сделать - не соображу. Помогите!
Afreet (2002-07-25 11:29:00) [1]Praco! спасибо. По моему должно сработать. Как я забыл про сортировку! Иногда из головы вылетают такие простые вещи.
Praco (2002-07-25 11:06:00) [2]Не знал про TOP в TADOQuery.
Номер записи не при чем.
Ключ: f1, f2, f3.
1 раз
SELECT TOP 500 * FROM Таблица order by f1, f2, f3
затем запоминаешь максимальное значение(f1_, f2_, f3_) и
SELECT TOP 500 * FROM Таблица where f1 > f1_ and ... order ...
Afreet (2002-07-25 09:42:00) [3]TADOQuery без проблем отрабатывает такой SELECT.
Praco твоя конструкция работала бы в том случае, если б ключевое поле было номером записи. У меня в связи с этим такой вопрос. Как пронумеровать записи в SELECTе. Для Oracle эта проблема решается использованием в конструкции SELECT функции rowcount, если не ошибаюсь, а вот для Paradox как? Есть чёнить подобное - конструкция типа:
SELECT ROWCOUNT, * FROM [Откуда]
Praco (2002-07-25 09:19:00) [4]А TOP 500 в Парадоксе применимо? Локальный SQL не поддерживает.
Anatoly Podgoretsky (2002-07-25 09:19:00) [5]Afreet (25.07.02 07:29)
Ты утверждаешь, что данная конструкция с TOP работает на Парадоксе
Praco (2002-07-25 09:14:00) [6]1 раз
SELECT TOP 500 * FROM Таблица
затем запоминаешь максимальное значение(max_key) ключа и
SELECT TOP 500 * FROM Таблица where ключ > max_key