Показать сообщение отдельно
  #1  
Старый 25.08.2010, 14:05
bestserg bestserg вне форума
Прохожий
 
Регистрация: 27.03.2009
Сообщения: 4
Репутация: 10
По умолчанию импорт данных из dbf (очень больная) в sql server

Всем добрый день!
Следующая задача: необходимо организавать импорт данных из таблицы dbf в sql server. Проблема состоит в том, что dbf таблица очень большая - 1,5 Гб. Когда я пытаюсь загрузить ее в sql server через BDE, то таблица загружается, но при просмотре в sql server-е она оказывается не вся, а примерно половина записей dbf таблицы, а если я ее загружаю через ODBC драйвер, то во время загрузки, программа начинает увеличивать используемую память и в итоге программа во время загрузки натыкается на сообщение об исчерпании виртуальной памяти (примерно через пол часа работы на пеньке 3Ггц и 2 Гб оперативной памяти, 1 или 2 Гб виртуальной). Загрузку провожу таким путем:
ADOCommand1.CommandText:= 'INSERT Polis VALUES ('''+
t_polis.FieldByName('smo').AsString+''','''+
t_polis.FieldByName('polis_s').AsString+''','''+
t_polis.FieldByName('polis_n').AsString+''','+
datn_new+','+
datk_new+','''+
t_polis.FieldByName('fam').AsString+''','''+
t_polis.FieldByName('im').AsString+''','''+
t_polis.FieldByName('otch').AsString+''','+
datr_new+','''+
t_polis.FieldByName('pol').AsString+''','''+
t_polis.FieldByName('snils').AsString+''','''+
t_polis.FieldByName('pr_rab').AsString+''','''+
t_polis.FieldByName('mrab').AsString+''','''+
t_polis.FieldByName('innrab').AsString+''','''+
t_polis.FieldByName('kpprab').AsString+''','+
IntToStr(t_polis.FieldByName('sost').AsInteger)+', '+
d_input_new+','''+
t_polis.FieldByName('okved').AsString+''')';
ADOCommand1.Execute;

Подскажите пожалуйста как можно обойти такую ситуацию. У нас есть программа стороннего разработчика, которая выполняет такой импорт и при этом никаких подобных сообщений не выскакивает и еще, когда я запускаю импорт в программе стороннего разработчика, открывал диспетчер задач и увидел, что во время загрузки программа этого разработчика не грузит процессор, а грузится sqlserver. А когда я в своей программе запускаю импорт, то почти весь процессор загружает моя программа и при этом постоянно увеличивает использование виртуальной памяти. У кого есть какие предложения, буду рад услышать.
Ответить с цитированием