Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Converter DBF to MDB [D7, XP]


Cannon ©   (2010-06-23 09:51:00) 

Появилась необходимость написать утилиту в Delphi которая будет конвертировать DBF файлы в MDB (Eccess). Подскажите, что лучше для этой цели использовать, какие компоненты для доступа к DBF и MDB ? Спасибо.


Правильный$Вася   (2010-06-23 10:59:00) [1]

DataPump уже отменили?


Cannon   (2010-06-23 10:37:00) [2]

не надо программиста) все понял, спасибо.

ЗЫ:  Ветка для начинающих


Плохиш   (2010-06-23 10:34:00) [3]

Советую нанять программиста.


Cannon   (2010-06-23 10:33:00) [4]


> Совершенно не интересная ветка.


Ну извините, забыл вырезать.


> Используй TADOQuery с SQL-предложением INSERT INTO AccessTable
> SELECT * FROM DBFTable
>


А коннект к какой из баз нужно установить ?


Плохиш   (2010-06-23 10:29:00) [5]


>        ProgressBar1.Position := i;
>        Label1.Caption := IntToStr(i);
>        Refresh;
>        inc(i);
>

Совершенно не интересная ветка.


Сергей М.   (2010-06-23 10:24:00) [6]


> открыть обе таблицы DBF и Access


Не надо их открывать.

Используй TADOQuery с SQL-предложением INSERT INTO AccessTable SELECT * FROM DBFTable


Anatoly Podgoretsky   (2010-06-23 10:24:00) [7]

> Cannon  (23.06.2010 10:00:02)  [2]

Вот это и надо делать, но мы не ищем легких путей.


Cannon   (2010-06-23 10:16:00) [8]

Сейчас делаю так:

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:10:00) [9]

Ну и см.[3] - SQL-запросы на то существуют)


Сергей М.   (2010-06-23 10:09:00) [10]

> если открыть тот же DBF в MS Access и экспортнуть, все это происходит в считанные секунды

Access использует Jet напрямую либо через DAO (не путать с ADO).
А что тыиспользуешь - это известно только тебе)


Dennis I. Komarov   (2010-06-23 10:07:00) [11]


> Пробежался по DBF (While not Table.EOF) и...

Страсти то какие. Еще варианты будут?


Cannon   (2010-06-23 10:00:00) [12]

Создал таблицу в Access одинаковую по структуре с DBF файлов. Пробежался по DBF (While not Table.EOF) и начал сажать в таблицу Access, все записи, процесс происходит очень долго, в DBF в среднем по 500 тыс. записей. (Использовал ADO) А если открыть тот же DBF в MS Access и экспортнуть, все это происходит в считанные секунды.


Сергей М.   (2010-06-23 09:52:00) [13]

ADO


Наверх

Титульная страница Поиск, карта сайта Написать письмо