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

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

Результат выполнения Query поместить в Список -без Цикла. [D5, Paradox]


Imshanya ©   (2003-02-07 15:09:00) 

Уважаемые Мастера???

Можно ли поместить результат запроса например в TStringList,
не использу построчный перебор???.

Например:

...
Query1ObjName:TStringField;
...
Var
L:TStringList;
begin
L:=TStringList.Create;
Query1.SQL.Text:="SELECT ObjName FROM Objects";
Query1.Open;
...
// Вот так не хочу, быстрее можно? Типа Assign ???
While not Query1.Eof Do
begin
L.Add(Query1ObjName.Value);
Query1.Next;
end;
...

L.Free;
end;

Заранее благодарю за внимание!!!


Imshanya   (2003-02-10 14:50:00) [1]

Народ!
Вы как дети, ей-богу. Ну чего тут непонятного в "40 тысячах "???
Задачи-то разные бывают! Мне на карте надо маршрут проложить(нарисовать), снятый с GPS: данные из запроса требуют намного больше времени на прохождение циклом, нежели те-же данные, взятые из списка. И это несмотря на то, что тратится время преобразование данных. Приложения бывают подчас и критичными ко времени исполнения.
Или здесь никто не знает числа больше 255 ? :)
Вообще я Вам Всем Очень Благодарен за Внимание И Помощь.На этом форуме публика очень даже приличная(не только в профессиональном аспекте) и отзывчивая.
Так что Спасибо Вам Всем Большое и Успехов в Работе!!!


jack128   (2003-02-08 22:04:00) [2]

2 Volk >Сформируй строку из своих данных<
а как если не секрет сформировать эту строку без цикла?

ЗЫ Но зачем 40000 записей в Stringlist действительно непонятно..


volk   (2003-02-08 20:36:00) [3]

Все просто:
У TStringList есть свойства DelimitedText and CommaText
Используй одно из них, причем Delimiter можешь определять сам - любой символ итд... Сформируй строку из своих данных, разделяя их символом Delimiter и присвой все это свойству DelimitedText - Остальное TStringList сделает сам. И так же с CommaText - в хелпе все написано. Есть еще свойство Text - просто текст, но он полезен для чтения всех строк сразу, для записи не разбирался...:)


Johnmen   (2003-02-07 23:42:00) [4]

...да-а-а-а-а, 40 штук...это же надо додуматься....:)))


BlackTiger   (2003-02-07 23:36:00) [5]

Да ничего другого там нет.
Там совсем по другому :)
"Просто" используется кэш и блочная загрузка по мере появления на экране (разными способами делается). Данные-то в датасете, а не в гриде.

А вот зачем это "добро" о 40 тысячах в StringList грузить - непонятно...


Mike Kouzmine   (2003-02-07 16:03:00) [6]

Наверное. Вам виднее.


Imshanya   (2003-02-07 15:59:00) [7]

2 Mike Kouzmine
Так я и говорю, наверное через TCollection


Imshanya   (2003-02-07 15:56:00) [8]

Похоже, нашел "где собака порылась" - TCollection.
Или я неправ?


Mike Kouzmine   (2003-02-07 15:55:00) [9]

Ууу.. А зачем стринглист тогда?


Imshanya   (2003-02-07 15:52:00) [10]

2 Mike Kouzmine

Да можно бы и побыстрей! :)
Я ведь говорю о Query1.RecordCount >= 40"000


Mike Kouzmine   (2003-02-07 15:45:00) [11]

А что, медленно добавляет?


Imshanya   (2003-02-07 15:43:00) [12]

2 MsGuns

Вариант ,конечно и в общем то неплохой!
И все-таки у Борландия есть наверное что-то другое.Что-то я не верю, что они в TDBGrid заносят данные в цикле (по крайней мере в явном цикле). Эх, тяжела и неказиста...
Придется изучать предка TDBGrid.

Может кто еще че подскажет ?


Карелин Артем   (2003-02-07 15:38:00) [13]

Это самый быстрый.


Mike Kouzmine   (2003-02-07 15:35:00) [14]

Скорее всего нет


MsGuns   (2003-02-07 15:35:00) [15]

Добавляешь Датасет, описываешь его как текстовый НД, а затем BatchMove из своего квери.


Imshanya   (2003-02-07 15:27:00) [16]

2 MsGuns

Не, Вы не о том, Батенька! :)
Не инструкцию SQL, а возвращенный набор данных?!


MsGuns   (2003-02-07 15:19:00) [17]

Query.SQL.SaveToFile/LoadFromFile ?


Наверх

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