Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 22.04.2010, 09:27   #1
Tanuska___:)
Форумчанин
 
Аватар для Tanuska___:)
 
Регистрация: 22.04.2008
Сообщений: 84
Репутация: 36

icq: 489-343-420
По умолчанию как увеличить скорость заполнения данных в mdb из excel

Уважаемые программисты, у меня такой вопрос:
заношу из excel записи (где то 14000) в таблицу бд аксес.
вот кусок кода этого процесса:
Код:

I:=2;
V:= Sheet.Cells[I, 1].Value;
While Not VarIsEmpty(V) do
begin
    Edit17.Text:=Sheet.Cells[I, 2].Value;
    Edit9.Text:=Sheet.Cells[I, 11].Value;
  
  t:='insert into rabota (GARN1,dat) values ('+ QuotedStr(Edit17.Text)+','+ QuotedStr(Edit9.Text)+')';
      with ADOQuery do
      begin
      Close;
      SQL.Clear;
      SQL.Text:=t;
      ExecSQL;
      end;
    Inc(I);
 V:= Sheet.Cells[I, 1].Value;
 end;

при этом добавление такого кол-ва записей происходит в течении часа
может кто знает из за чего тормозится процесс? буду рада любому ответу.
Tanuska___:) вне форума   Ответить с цитированием
Старый 22.04.2010, 09:40   #2
dron-s
Участник клуба
 
Регистрация: 04.03.2007
Адрес: Тюменская область, г.Тобольск
Сообщений: 615
Репутация: 266

icq: 594-993-646
По умолчанию

Код:

I:=2;
V:= Sheet.Cells[I, 1].Value;
While Not VarIsEmpty(V) do
begin
  t:='insert into rabota (GARN1,dat) values ('+ QuotedStr(Sheet.Cells[I, 2].Value)+','+ QuotedStr(Sheet.Cells[I, 11].Value)+')';
      with ADOQuery do
      begin
      Close;
      SQL.Clear;
      SQL.Text:=t;
      ExecSQL;
      end;
    Inc(I);
 V:= Sheet.Cells[I, 1].Value;
 end;

комп лишком тормозной
dron-s вне форума   Ответить с цитированием
Старый 22.04.2010, 10:24   #3
Tanuska___:)
Форумчанин
 
Аватар для Tanuska___:)
 
Регистрация: 22.04.2008
Сообщений: 84
Репутация: 36

icq: 489-343-420
По умолчанию

просто если это делать с помощью экспорта в самой аксесс все выполняется в течении 3 секунд...
может компоненты целяют бызу при каждой записи. хотя использую стандартное адоконнект и адоквери
Tanuska___:) вне форума   Ответить с цитированием
Старый 22.04.2010, 10:30   #4
Grag
А может и не...
Профессионал
 
Аватар для Grag
 
Регистрация: 27.03.2010
Адрес: Красноярск
Сообщений: 1,269
Репутация: 151

icq: 585281783
skype: delmas61
По умолчанию

Я такие операции делаю через вариантные матрицы, выделяю область данных таблицы Excel, затем копирую эту область в матрицу (выполняется очень быстро), а потом уже из матрицы выгружаю данные в таблицу БД...
__________________
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума   Ответить с цитированием
Старый 22.04.2010, 10:50   #5
plato
Форумчанин
 
Регистрация: 23.01.2009
Сообщений: 107
Репутация: 19

icq: 308-181-327
По умолчанию

использую вариантные массивы
есть обратный пример: http://www.delphisources.ru/pages/fa...excel_rep.html
переделай под себя
будет быстро
__________________
и не забудьте подарить детям шоколадку
plato вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скорость заполнения памяти разными способами. Alexcomeback Общие вопросы C/C++ 2 20.05.2009 23:14
Копирование данных типа Дата из Excel в mdb таблицу Dimok82 БД в Delphi 0 14.03.2009 12:34
запись в БД(*.MDB) из Excel VB MUZDIE Microsoft Office Excel 1 18.01.2008 18:13
Запись в БД(*.MDB) из Excel VB MUZDIE Помощь студентам 2 18.01.2008 13:58


04:00.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru