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

V88

Well-known member
22.10.2008
51
0
#1
Здравствуйте!
Есть БД 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.

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

nayke

Well-known member
04.08.2010
310
0
#2
Здравствуйте!
Есть БД 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.
 

V88

Well-known member
22.10.2008
51
0
#3
Добавление информации можно вынести на отдельную форму это сократит время обновления ADOTable.
У меня при добавлении записи есть отдельная форма, на которой заполняешь поля и жмешь ОК. Вот именно при нажатии ОК я делаю Close/Open, что и затормаживает работу. Если не делать Close/Open, то в DBGride не видно изменений.
 
R

rdama

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