• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Быстрое Открытие Таблиц Access

  • Автор темы V88
  • Дата начала
V

V88

Здравствуйте!
Есть БД Access, связанная при помощи ADO через Microsoft.Jet.OLEDB.4.0, в этой базе есть таблица "Reg" с 10 000 записями. Вот при выполнении ADOTable.Open таблица Reg открывается долго (где-то сек 5). Как сделать открытие таблицы быстрее?
P.S. При установке для ADOConnection и ADOTable.CursorLocation:=clUseServer не помогло.

P.P.S. Если это не возможно, то как можно тогда сделать обновление этой же таблицы при, напр., добавлении записи (запись добавляеся при помощи SQL), т.е. чтобы не делать ADOTable.Close и Open.

Заранее спасибо.
 
N

nayke

Здравствуйте!
Есть БД Access, связанная при помощи ADO через Microsoft.Jet.OLEDB.4.0, в этой базе есть таблица "Reg" с 10 000 записями. Вот при выполнении ADOTable.Open таблица Reg открывается долго (где-то сек 5). Как сделать открытие таблицы быстрее?
P.S. При установке для ADOConnection и ADOTable.CursorLocation:=clUseServer не помогло.

P.P.S. Если это не возможно, то как можно тогда сделать обновление этой же таблицы при, напр., добавлении записи (запись добавляеся при помощи SQL), т.е. чтобы не делать ADOTable.Close и Open.

Заранее спасибо.
Можно попробовать ADOQuery и фильтром или группировкой сократить объем одновременно отбражаемой информации.

Добавление информации можно вынести на отдельную форму это сократит время обновления ADOTable.
 
V

V88

Добавление информации можно вынести на отдельную форму это сократит время обновления ADOTable.

У меня при добавлении записи есть отдельная форма, на которой заполняешь поля и жмешь ОК. Вот именно при нажатии ОК я делаю Close/Open, что и затормаживает работу. Если не делать Close/Open, то в DBGride не видно изменений.
 
R

rdama

А какова необходимость отображать все 10 000 записей постоянно?
Может стоит пересмотреть этот критерий?
Например при открытии таблицы отображать записи за последний день, неделю, месяц и т.д.
Тогда грузиться все это будет меньше по времени.
Далее с ADOTable перейдите на ADOQuery или ADODataSet.
В реальности под ADOTable выполняется запрос вида
Код:
SELECT * FROM table_name
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!