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

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

Возможно ли? [D5, IB5.x]


Captain ©   (2002-07-02 00:04:00) 

Есть набор данных. Мне нужно занести в массив или список все значения одного из полей этого набора. Сложность в том, что набор данных огромен по своим размерам (десятки тысяч записей). Поэтому навигация по набору данных и последовательное присваивание элементам массива значений поля займет уйму времени.
Можно ли как-нибудь одним махом заполнить массив (список) значениями поля?


Alexandr   (2002-07-03 08:33:00) [1]

тип Array как всегда не подойдет.

С ним ни через SP никак не поработать... да и толку от него нету.

1) Array это такой специальный BLOB поэтому уж лучше BLOB использовать: с ним хотя бы све понятно и доступно
2) Этот Array был сделан в Interbase по заказу одной крупной конторы и нужен практически только им

Так что забудьте вы про Array


kaif   (2002-07-02 23:53:00) [2]

Может для такой цели можно как-то тип ARRAY задействовать?
Это только в виде идеи...


Desdechado   (2002-07-02 17:07:00) [3]

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


dimis   (2002-07-02 08:39:00) [4]

алгоритм вычисления кратчайшего расстояния достаточно трудоемкий процесс. Сложность алгоритма Дейкстры o(n^2). У флойда еще больше. Мой совет не делать динамический рассчет,а просчитать пути зарание (можно ключевые точки),занести все это в таблицу и проиндексировать. Объем базы возрастет, но время обсчета уменьшится на несколько порядков.
Конечно этот вариант проходит если топология графа достаточно стабильна во времении и изменяется редко. Я сам таким занимался.
У меня около 20000 тысяч вершин. Обсчет всех расстояний занял около недели.зато потом выборка занимает доли секунды.


Captain   (2002-07-02 08:31:00) [5]

Дело в том, что мой набор данных представляет собой множество ID вершин графа. Чтобы привести в действие какой-нибудь алгоритм на графе, например Дейкстры или Флойда, нужно сформировать тип данных "Граф" - массив вершин или, что представляется мне более удобным, список вершин. Но перед этим мне надо все вершины считать из базы, и хотелось бы минимизировать по времени этот процесс.


Леша   (2002-07-02 06:45:00) [6]

Набор данных сам по себе тоже массив.


kaif   (2002-07-02 01:09:00) [7]

Само по себе получение такого набора (извлечение записей с сервера с помощью Fetch) занимает больше времени, чем запись оных в массив. Поэтому, я боюсь, хороших времен получить все равно не удастся. А зачем нужно считывать десятки тысяч записей на клиент, если не секрет?


Наверх

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