Форум: "Базы";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
Вниз
Странно ведет себя цикл 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c