Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Вниз

Выборка N+K записей на FB   Найти похожие ветки 

 
BanderLog   (2006-03-10 13:23) [0]

Здравствуйте! Подскжите каком образом можно организовать постепенную выборку записей из таблице.
Допустим по 100 штук. Выбрал 100 записей, обработал, закрыл запрос, выбрал другие 100 записей и т.д.
использую FB 1.5


 
Sergey13 ©   (2006-03-10 13:29) [1]

2BanderLog   (10.03.06 13:23)
Это тупиковое направление действий.


 
BanderLog   (2006-03-10 13:32) [2]

Мне необходимо перекинуть данные из одной таблицы в другую, размер таблицы в районе 3 гигов (блобы), каким образом это можно организовать наиболее эффективно?


 
Mikhail V ©   (2006-03-10 13:40) [3]


> Выбрал 100 записей, обработал, закрыл запрос

Выбрал 100 записей, обработал, Commit


 
BanderLog   (2006-03-10 13:42) [4]

Как выбрать сначала с 1 по 100, потом со 101 по 200 и т.д.?


 
Sergey13 ©   (2006-03-10 13:43) [5]

2[2] BanderLog   (10.03.06 13:32)
>Мне необходимо перекинуть данные из одной таблицы в другую, размер таблицы в районе 3 гигов (блобы),

В этом случае беру свои слова назад. 8-)

>каким образом это можно организовать наиболее эффективно?
По диапазону ИД-шников например.


 
BanderLog   (2006-03-10 13:47) [6]

Как вариант конечно....  :)


 
Sergey13 ©   (2006-03-10 13:57) [7]

2[6] BanderLog   (10.03.06 13:47)
А почему не сразу все? Из-за файловых ограничений?


 
Johnmen ©   (2006-03-10 13:59) [8]

Не надо никаких диапазонов, никаких "по 100" и т.п.
Просто выполняется запрос на все интересующие записи. Получаем набор данных, при этом делаем его однонаправленным. Взяли из НД запись, обработали, пихнули, куда надо. Взяли следующую...


 
Sergey13 ©   (2006-03-10 14:03) [9]

2[8] Johnmen ©   (10.03.06 13:59)
Так тут НД вообще не нужен вроде. Просто insert into... select вроде достаточно.


 
BanderLog   (2006-03-10 14:03) [10]

А как же выборка 3 гигов на клиента, запрос то открыт, и дойдя до последней я выберу все 3 гига, которые будут где то на винте храниться... Или не так?


 
Sergey13 ©   (2006-03-10 14:08) [11]

2[10] BanderLog   (10.03.06 14:03)
Зачем на клиента то тащить если просто "перекинуть данные из одной таблицы в другую"?


 
Petr V. Abramov ©   (2006-03-10 14:09) [12]

Тогда уж лучше на API Firebirda утилитку написать. Записи все равно по одной fetch`атся, а что с выбранными делать, Вам уже рашать будет


 
BanderLog   (2006-03-10 14:09) [13]

Выбрал 100 записей, обработал, закрыл запрос


 
BanderLog   (2006-03-10 14:12) [14]

В общем пока наиболее простой и быстрый способ получается с ID. В виду того что удалений не так уж много, должно получитсья.

Предыдущий мой ответ был для [11] Sergey13 ©   (10.03.06 14:08) Обрабатывать надо данные.


 
Johnmen ©   (2006-03-10 14:14) [15]


> А как же выборка 3 гигов на клиента, запрос то открыт, и
> дойдя до последней я выберу все 3 гига, которые будут где
> то на винте храниться... Или не так?


Не так. На клиенте в каждый момент времени будет не более 1 считанной записи.


 
Sergey13 ©   (2006-03-10 14:14) [16]

2[14] BanderLog   (10.03.06 14:12)
>Обрабатывать надо данные.
В ХП не получится?


 
PEAKTOP ©   (2006-03-10 14:15) [17]

Создай ХП, которая будет выбирать данные из таблицы упорядоченно (например, по ID), и генерить на каждом SUSPEND поле ID_SUSPEND, увеличивая его на единицу.
А потом на клиенте
1) SELECT * FROM MY_PROC WHERE (ID_SUSPEND >0) AND(ID_SUSPEND<=100)
2) SELECT * FROM MY_PROC WHERE (ID_SUSPEND >100) AND(ID_SUSPEND<=200)
3) SELECT * FROM MY_PROC WHERE (ID_SUSPEND >200) AND(ID_SUSPEND<=300)
И т.д.


 
BanderLog   (2006-03-10 14:35) [18]

2 [8] Johnmen ©   (10.03.06 13:59)
Объясни плиз, однонаправленный это какой?
И если в определённый момент времени на клиенте будет храниться только одна надпись, то вопрос отпадает.

2 [16]Sergey13 ©   (10.03.06 14:14)
Только если писать свою UDF по обработке Blob"a (документы ACad, Excel и т.д.)


 
Johnmen ©   (2006-03-10 14:38) [19]


> BanderLog   (10.03.06 14:35) [18]
> Объясни плиз, однонаправленный это какой?


Это unidirectional.
Если пользовать TIBSQL, то он такой по определению.
Если другой, то см. соотв. свойство.


 
BanderLog   (2006-03-10 14:40) [20]

Большое спасибо, ушёл разбираться. :)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.011 c
15-1144629638
SergProger
2006-04-10 04:40
2006.04.30
Смешивание двух каналов


3-1141677975
Евгений Р.
2006-03-06 23:46
2006.04.30
Аналогия с Loal SQL


6-1137093319
Volf_555
2006-01-12 22:15
2006.04.30
Как сохранить интернет-страницу из TWebBrowser с рисунками?


3-1141905491
Megabyte
2006-03-09 14:58
2006.04.30
Вызов одной ХП внутри другой


2-1144825642
Сергей И.
2006-04-12 11:07
2006.04.30
автозагрузка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский