Форум: "Начинающим";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];
ВнизConverter DBF to MDB Найти похожие ветки
← →
Cannon (2010-06-23 09:51) [0]Появилась необходимость написать утилиту в Delphi которая будет конвертировать DBF файлы в MDB (Eccess). Подскажите, что лучше для этой цели использовать, какие компоненты для доступа к DBF и MDB ? Спасибо.
← →
Сергей М. © (2010-06-23 09:52) [1]ADO
← →
Cannon (2010-06-23 10:00) [2]Создал таблицу в Access одинаковую по структуре с DBF файлов. Пробежался по DBF (While not Table.EOF) и начал сажать в таблицу Access, все записи, процесс происходит очень долго, в DBF в среднем по 500 тыс. записей. (Использовал ADO) А если открыть тот же DBF в MS Access и экспортнуть, все это происходит в считанные секунды.
← →
Dennis I. Komarov © (2010-06-23 10:07) [3]
> Пробежался по DBF (While not Table.EOF) и...
Страсти то какие. Еще варианты будут?
← →
Сергей М. © (2010-06-23 10:09) [4]> если открыть тот же DBF в MS Access и экспортнуть, все это происходит в считанные секунды
Access использует Jet напрямую либо через DAO (не путать с ADO).
А что ты используешь - это известно только тебе)
← →
Сергей М. © (2010-06-23 10:10) [5]Ну и см.[3] - SQL-запросы на то существуют)
← →
Cannon (2010-06-23 10:16) [6]Сейчас делаю так:
While not DBFTable.Eof do
begin
AccessTable.Insert;
for f:= 0 to DBFTable.FieldCount - 1 do
begin
AccessTable.FieldByName(DBFTable.Fields[f].FieldName).Value := DBFTable.FieldByName(DBFTable.Fields[f].FieldName).Value;
end;
DBFTable.Next;
ProgressBar1.Position := i;
Label1.Caption := IntToStr(i);
Refresh;
inc(i);
end;
А как использовать SQL, т.е открыть обе таблицы DBF и Access с помощью ADO затем использовать скрипт Insert into в ADOQuery ?
← →
Сергей М. © (2010-06-23 10:24) [7]
> открыть обе таблицы DBF и Access
Не надо их открывать.
Используй TADOQuery с SQL-предложением INSERT INTO AccessTable SELECT * FROM DBFTable
← →
Anatoly Podgoretsky © (2010-06-23 10:24) [8]> Cannon (23.06.2010 10:00:02) [2]
Вот это и надо делать, но мы не ищем легких путей.
← →
Плохиш © (2010-06-23 10:29) [9]
> ProgressBar1.Position := i;
> Label1.Caption := IntToStr(i);
> Refresh;
> inc(i);
>
Совершенно не интересная ветка.
← →
Cannon (2010-06-23 10:33) [10]
> Совершенно не интересная ветка.
Ну извините, забыл вырезать.
> Используй TADOQuery с SQL-предложением INSERT INTO AccessTable
> SELECT * FROM DBFTable
>
А коннект к какой из баз нужно установить ?
← →
Плохиш © (2010-06-23 10:34) [11]Советую нанять программиста.
← →
Cannon (2010-06-23 10:37) [12]не надо программиста) все понял, спасибо.
ЗЫ: Ветка для начинающих
← →
Правильный$Вася (2010-06-23 10:59) [13]DataPump уже отменили?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c