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

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

dataset->file [D7, XP]


Страницы:   1 2

картман ©   (2010-10-06 09:33:00) 

Всем привет.

нужно быстро перенести данные из бд в файл.
делать так:

while not query.eof do
begin
 StringList.Add(query.FieldByName('aaa').AsString);
 query.Next;
end;

StringList.SaveToFile...

долго получается. Если выделить много памяти в PChar и в нее Move переносить - быстрее, но все равно не устраивает. Как добиться такой же скорости, как TADODataSet.SaveToFile?


Anatoly Podgoretsky   (2010-10-06 10:07:00) [21]


> Да не, по набору долго перемещает.

Муж спрашивает жену - ты мне изменяешь?
Да не

Так TADODataSet.SaveToFile и так пишет в файл, чего еще?


картман   (2010-10-06 10:07:00) [22]

TField.GetData - может то?


картман   (2010-10-06 09:52:00) [23]

ща копирую очередную строку в PChar:

...
 tmp := q.FieldByName('asd').AsString + q.FieldByName('asd').AsString;
 Move(tmp[1], (strChar + pos)^, Length(tmp));
 pos := pos + Length(tmp);
...

в диспетчере задач непрерывно увеличивается размер занятой памяти - это с чего?


картман   (2010-10-06 09:46:00) [24]


> Юрий Зотов ©   (06.10.10 09:41) [1]

пробовал.
Да не, по набору долго перемещает.
Поставлю:
ADOQuery.CursorType:=ctOpenForwardOnly;

а что такое ADOQuery.CursorLocation? Т.е. из названия понятно что, как будет быстрее? Где-то нашел совет ставить на сервере - для такой же проблемы.


Юрий Зотов   (2010-10-06 09:41:00) [25]

var
 F: TextFile;
befin
 AssignFile(...);
 Rewrite(F);
 while not Query.EoF do
 begin
   WriteLn(F, Query.Fields[...].AsString);
   Query.Next
 end;
 CloseFile(F)
end;


Страницы:   1 2

Наверх

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