Главная страница
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.015 c
1-61665
Tik
2002-12-08 07:01
2002.12.19
TreeView, StringGrid


1-61587
phantom2040
2002-12-10 08:59
2002.12.19
Работа со временем


1-61549
Zirus
2002-12-09 16:52
2002.12.19
Sound blaster ПДП


4-61883
AndreyH
2002-11-05 14:16
2002.12.19
Симулятор LPT1


1-61612
Kiken
2002-12-06 23:25
2002.12.19
События от мыши