Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > скорость Delphi и Access


Автор: elnar777 14.11.2006, 10:04
Здравствуйте.У меня следующая проблема.Есть складская программа на Access.Когда число записей перевалило за 70000 то добавление данных в программу через обычный грид происходит очень медленно.Элементарно при добавление новой записи уходит 2-3 секунды.Как можно решить эту проблему?

Автор: Akella 14.11.2006, 10:37
С помощью SQL и окна добавления. К сожалению Access не поддерживает хранимые процедуры.

Автор: elnar777 14.11.2006, 12:07
Может проблема в dbgrideh?

Автор: TaNK 14.11.2006, 12:32
Цитата(elnar777 @ 14.11.2006,  12:07)
Может проблема в dbgrideh?

а может добавление в бд идет через табле а не через query?

Автор: elnar777 14.11.2006, 12:56
Да.Добавление идет через table. Какая разница добавлять запись через table или query?

Автор: Vas 14.11.2006, 13:10
А индексы на таблице хоть какие-нибудь есть? 
Цитата(elnar777 @  14.11.2006,  12:56 Найти цитируемый пост)
Какая разница добавлять запись через table или query? 

Да почти никакой, Table сам генерирует запрос на вставку данных, а в Query ручками программист пишет. Подумай у кого код будет оптимальней?

Автор: elnar777 14.11.2006, 13:13
Какая разница между adotable1.insert и adoquery1.insert.Грид же добаляет данные сам при переходе на новую запись.

Автор: TaNK 14.11.2006, 13:35
Цитата(elnar777 @ 14.11.2006,  13:13)
Какая разница между adotable1.insert и adoquery1.insert.Грид же добаляет данные сам при переходе на новую запись.

а ты проверь - может поможет

Автор: Savek 14.11.2006, 15:02
Еще быстрее добавление будет через ADOCommand  

Автор: TaNK 14.11.2006, 15:31
Цитата(Savek @ 14.11.2006,  15:02)
Еще быстрее добавление будет через ADOCommand

согласен-эта тема поднималась не раз на этом форуме!

Автор: Akella 14.11.2006, 15:38
Цитата(Akella @  14.11.2006,  10:37 Найти цитируемый пост)
К сожалению Access не поддерживает хранимые процедуры.


Автор: Злоумышленник 19.11.2006, 23:32
Цитата(elnar777 @  14.11.2006,  10:04 Найти цитируемый пост)
...то добавление данных в программу через обычный грид происходит очень медленно...

1. Возможно, в схеме БД (это в mdb-шнике) с данной таблицей установлены связи с ограничениями ссылочной целостности. Попробуй их отключить.
2. Возможно, mdb-шник находится на удалённом компе, тут уже ничего не сделаешь. Хотя можно попробовать п. 1

Автор: SergeBS 20.11.2006, 17:06
elnar777, 
Скорее всего - классические грабли начинающих в ADO. Смотри параметр MarshallOptions = moMarshalAll (default). И вся таблица ездит туда-сюда. При изменении 1 поля, например.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)