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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
2-1277704401
И. Павел
2010-06-28 09:53
2010.09.19
Общий обработчик ошибок, завершающий программу.


15-1277411728
DevilDevil
2010-06-25 00:35
2010.09.19
Валидация нескольких XML по одному XSD


2-1277531501
mm0
2010-06-26 09:51
2010.09.19
(Win7)Сообщение о подтв. запуска


11-1214765166
<>
2008-06-29 22:46
2010.09.19
Программа, написанная на KOL определяется как вирус!


15-1277435535
MonoLife
2010-06-25 07:12
2010.09.19
Ищу песню.