Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление сразу нескольких записей ADO + Access, ADO Access 
:(
    Опции темы
Jonnik
Дата 16.2.2012, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



Здравствуйте.
Вопрос такой. Как добавить сразу несколько записей в таблицу?
Щас я добавляю так:

Код

with Form1.ADOQuery1 do
            begin
              Close;
              sql.text:='INSERT INTO Gurnal( ID_Pl, Tip, Docum, Dat, Tim)'
              +' VALUES ( :PID_Pl, :PTip, :PDocum, :PDat, :PTim)';
              Parameters[0].Value:=IntToStr(idp);
              Parameters[1].Value:='Расход';
              Parameters[2].Value:=s[1];
              Parameters[3].Value:=DateToStr(Date());
              Parameters[4].Value:=TimeToStr(Time());
              ExecSQL;
            end;


Но так можно добавлять одну две записи по отдельности. А мне нужно будет так добавить 10000 записей из внешненего источника и когда этот запрос делаешь в цикле, то добавление происходит очень долго. Но оно и понятно так как каждый раз как минимум приходится искать конец таблицы.

В общем как это можно реализовать, что бы процесс добавления происходил по быстрее?
Заранее спасибо.
PM MAIL   Вверх
Данкинг
Дата 16.2.2012, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Попробуй через .Append....Post, только не думаю, что таким образом будет быстрее.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Jonnik
Дата 16.2.2012, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



Цитата(Данкинг @ 16.2.2012,  14:54)
Попробуй через .Append....Post, только не думаю, что таким образом будет быстрее.

А пример этого применения есть?

Я думал вообще типа такого реализовать, но в этом случае параметры невозможно будет использовать.
Код

INSERT INTO order_temp ( name , count1 , count2 , edit )
VALUES ('1', '1', '', '0'),
VALUES ('1', '1', '', '0')

PM MAIL   Вверх
Данкинг
Дата 16.2.2012, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Код

AdoTable.Append;
AdoTable.FieldValues['pole']:='Значение';
AdoTable.Post;



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Jonnik
Дата 16.2.2012, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



Цитата(Данкинг @ 16.2.2012,  20:38)
Код

AdoTable.Append;
AdoTable.FieldValues['pole']:='Значение';
AdoTable.Post;

Учитывая, что я AdoTable вообще не использую, то это будет проблематично.
А других вариантов нет?
PM MAIL   Вверх
Данкинг
Дата 17.2.2012, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Один запрос добавляет одну строку. Ничего другого пока ещё не придумали.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Jonnik
Дата 23.2.2012, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 9.2.2006

Репутация: нет
Всего: нет



Цитата(Данкинг @ 17.2.2012,  18:35)
Один запрос добавляет одну строку. Ничего другого пока ещё не придумали.

А сколько записей тогда добавит этот зарос за один раз?
Код

INSERT INTO order_temp ( name , count1 , count2 , edit )
VALUES ('1', '1', '', '0'),
VALUES ('1', '1', '', '0')



PM MAIL   Вверх
Данкинг
Дата 23.2.2012, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



А этот запрос у тебя работает??


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.