Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1277152197
Юрий
2010-06-22 00:29
2010.09.19
С днем рождения ! 22 июня 2010 вторник


2-1277283818
12
2010-06-23 13:03
2010.09.19
Научите работать, как работает ShowMessageFmt


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


2-1277362042
ther
2010-06-24 10:47
2010.09.19
назначение клавишы для визарда/эксперта


2-1277139245
Великий
2010-06-21 20:54
2010.09.19
Под вистой не отображается label





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский