Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.19;
Скачать: CL | DM;

Вниз

Странно ведет себя цикл while not DataSet.Eof do   Найти похожие ветки 

 
Diouzshev   (2002-11-27 18:57) [0]

Есть примерно такой код:

while not DataSet.Eof do
begin
with DataSet do {TADODataSet}
begin
Line := Fields[0].AsString;
for i:= 1 to FieldsCount - 1 do
Line:= Line + #9 + Fields[0].AsString;
writeln(f, Line);
Next;
end;
end;

Непоняностей две:
1. Почему это безобразие выполняется ок. 8 мин (22000 записей)
2. Скорость падает по мере вызова Next (к концу DataSet примерно в 3 раза)

Обидно то, что сам Access делает экспорт в файл секунд за 10-15.

PS
Delphi 6, ADO, Access
Настройки ADO-компонент - по умолчанию.


 
sniknik ©   (2002-11-27 19:28) [1]

так им (Access-ом) и делай. и быстрее и без ошибок :-) Line:= Line + #9 + Fields[ 0].AsString;

примерный запрос
SELECT * INTO Test#Txt IN "D:\" "Text;" FROM TableInAccess

Delphi 6, ADO, Access
Настройки ADO-компонент на Jet. где ты взял по умолчанию?


 
Diouzshev   (2002-11-27 19:35) [2]

For sniknik © (27.11.02 19:28)

>так им (Access-ом) и делай. и быстрее и без ошибок :-) Line:= >Line + #9 + Fields[0].AsString;
Ctrl+C Ctrl+V, сам знаешь %)

>примерный запрос
>SELECT * INTO Test#Txt IN "D:\" "Text;" FROM TableInAccess
Ссылка на доку по этой теме есть?
А обратно можно? (в базу)

>Настройки ADO-компонент на Jet. где ты взял по умолчанию
ещё надоедливый LoginPromt %)


 
sniknik ©   (2002-11-27 19:41) [3]

>А обратно можно? (в базу)
конечно, анологично, поменяй местами in и out.

дока
D:\Program Files\Common Files\Microsoft Shared\Office10\1049\JETSQL40.CHM
см куда Мс Офис ставил.

надоедливый LoginPromt отключается в ADOConnection.LoginPromt:= False.


 
Diouzshev   (2002-11-27 20:28) [4]

>надоедливый LoginPromt отключается в ADOConnection.LoginPromt:= False.

Это было отличие от настроек по умолчанию %))


 
Diouzshev   (2002-12-03 15:04) [5]

Проблема была решена очисткой свойства IndexFieldName (не все было по умолчанию %{ ), время сократилось до 40 секунд, имхо - это приемлемо.


 
sniknik ©   (2002-12-03 15:28) [6]

нет пределов совершенству! :о)

запрос Access-а (вернее Jet-а) на переброску в текст
SELECT * INTO Test#Txt IN "D:\" "Text;" FROM plucash
Выполнено применительно к 52798 записям. (no recordset)
выполняется 13.5 сек.
plucash - таблица dBase IV (подключение через jet тоже к нему)
24 поля, обший размер полей 429 байт. win2000, celeron 1000

то же самое из Access (mdb) в Text 11 сек.
сравнивай.




 
Diouzshev   (2002-12-03 16:14) [7]

Все так, но проблема с Next меня интересовала из принципа :)) - не всегда спасает SELECT * INTO

про SELECT * INTO я понял уже давно и успешно применил :) (за что спасибо)



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

Текущий архив: 2002.12.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
4-61882
AquaSun1
2002-11-07 06:00
2002.12.19
Указать из какой DLL ки запустить функцию


8-61717
DeMoN-777
2002-09-03 16:47
2002.12.19
Как узнать длинну трека или клипа проигрываемого в TMediaPlayer ?


14-61833
TTCustomDelphiMaster
2002-11-30 13:15
2002.12.19
Расформировывается группа декодеров


6-61729
Юрий
2002-10-24 05:31
2002.12.19
TClientSocket в компоненте


1-61586
Explorer
2002-12-10 09:27
2002.12.19
---|Ветка была без названия|---