Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Запись: текстовый файл построчно в таблицу Access


Автор: vvs 19.1.2004, 15:03
Здравствуйте!

Если перед кем стояла задача обработки отчетов, содержащихся в текстовых файлах, а таблицы хранились в Базе Access, помогите советом.

Привожу исходник:

var
TextSTR: String;
MyList: TStringList;
i: Integer;
begin
MyList := TStringList.Create;
TextSTR := ExtractFilePath(ParamStr(0)) + '\Files\' + 'work1.txt';
MyList.LoadFromFile(TextSTR);
dtmMayn.tbl_be.Open;
ProgressBar1.Max := MyList.Count - 1;
ProgressBar1.Min := 1;
ProgressBar1.Visible := True;
for i := 1 to MyList.Count - 1 do
begin
dtmMayn.tbl_be.AppendRecord([MyList.Strings[i]]);
ProgressBar1.Position := i;
end;
dtmMayn.tbl_be.Close;
ProgressBar1.Visible := False;

На мой взгляд узкое место в блоке добавления новой записи в таблицу. Для доступа к базе использую ADO.

Автор: December 19.1.2004, 22:18
В чём проблема-то?

Автор: Medved 20.1.2004, 01:35
А что Вы понимаете под словосочетанием "узкое место"?

Если Вам не нравиться стиль, так используйте альтернативные операторы (InsertRecord, Append, Insert) или в конце концов тот же SQL.

Если же у Вас ошибка, то скажите какая, что за сообщение выдается. Сиинтаксис у Вас правильный, написали все правильно.

Автор: vvs 20.1.2004, 07:02
Меня интерисует скорость добавления новых записей в таблицу. Эта операция в самом Accesse занимает около 3-ех секунд, при добавдении записей из Delphi, секунд 30, в текстовом файле около 3 тысяч строк и файл постоянно растет. Меня беспокоит что будет со скоростью проведения этой операции через полгода, год. Сам текстовый файл считывается практически мгновенно. Может есть какая-то возможность сделать Append сразу всей информации из текстового файла в таблицу и если есть, повлияет ли это на скорость?

Пробовал и SQL, Append записей построчно, скорость соответственно таже. smile.gif)

Автор: Unregistered 20.1.2004, 14:23
гораздо быстрее будет заставить сам акссесс открыть нужный тебе файл и засунуть в собственную таблицу, т.к. в данном случае тебе надо будет передавать чужой программе не большой объём данных, а всего лишь набор команд.

Автор: x77 20.1.2004, 14:24
во блин, с каких это пор я анрегистеред??

сорри за оффтоп.

Автор: vvs 21.1.2004, 11:14
Если можно, маленький пример мне не помешал бы!

Автор: Medved 22.1.2004, 03:11
пример чего? Если макросов, то это в раздел VB, и создавайте там новый топик.

Автор: vvs 23.1.2004, 08:50
В Accesse модуль есть, его использовал раньше, сейчас взялся оболочку написать на дельфи. С вызовом макросов Accessa из дельфи не сталкивался, если можно подскажите как это делается, или где посмотреть. Спасибо!

Автор: Medved 26.1.2004, 23:14
Читайте наш FAQ. Там есть примеры работы с Access. (ActivX,COM)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)