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

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

Конвертация DBF в MSSQL [D7, MSSQL]


Sergey-ZZZ ©   (2004-04-06 15:36:00) 

Мне нужно конвертнуть DBF в MSSQL. Написал код на кнопку:

tDB.First;
While not tDB.Eof do
begin
 qSQL.Parameters.ParamByName('Name').Value := tDBNAME.Value;
 qSQL.Parameters.ParamByName('Socr').Value := tDBSOCR.Value;
 qSQL.Parameters.ParamByName('Code').Value := tDBCODE.Value;
 qSQL.Parameters.ParamByName('Indexx').Value := tDBINDEX.Value;
 qSQL.Parameters.ParamByName('GNINMB').Value := tDBGNINMB.Value;
 qSQL.Parameters.ParamByName('UNO').Value := tDBUNO.Value;
 qSQL.Parameters.ParamByName('OCATD').Value := tDBOCATD.Value;
 qSQL.Parameters.ParamByName('STATUS').Value := tDBSTATUS.Value;
 qSQL.ExecSQL;
 tDB.Next;
end;
-----------------------
Конвертится 166000 записей около 12 минут. Может это можно сделать поумней чем у меня? Подскажите.


panov   (2004-04-06 20:38:00) [1]

Используй для загрузки в MSSQL утилиту BCP.


Sergey-ZZZ   (2004-04-06 18:24:00) [2]

Что не так?

select * from OpenRowset
('MSDASQL', 'Driver=Microsoft OLE DB Provider for ODBC Drivers;SourceDB=D:\KLADR\BASE;SourceType=DBF;',
'select * from Kladr')

Kladr.dbf типа DBase5. Ни фига не получается.


sniknik   (2004-04-06 16:15:00) [3]

> В принципе получится тоже на тоже, различными способами
ну да, конечно. тут 12 мин а у меня 171тыс. запросом 12 сек. тоже самое практически.


Delirium   (2004-04-06 15:44:00) [4]

"тоже на тоже" - по сравнению с чем?


Patrick   (2004-04-06 15:41:00) [5]

В принципе получится тоже на тоже, различными способами, попробуй указывать явный тип полей, а не Value.


Fishka   (2004-04-06 15:40:00) [6]

А если в MSSQL-таблицу записи вставлять SQL-запросом типа: Insert into table_SQL ... ?


Delirium   (2004-04-06 15:40:00) [7]

EM->All Tasks->Import Data - быстрее не придумаешь, если надо скриптом, то можно так
select * from OpenRowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;SourceDB=\\Master\Temp;SourceType=DBF;',
'select * from complect')


stone   (2004-04-06 15:39:00) [8]

см.
insert into Table1
select ... from OPENDATASET(...)


Наверх

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