У меня есть приложение Delphi с 3 формами, я использую Access 2003 и Microsoft.Jet.OLEDB.4.0, у меня было соединение ADO в основной форме, и я использую его во всех формах.
Я использую 2 файла .mdb, где my.mdb имеет ссылки на таблицы org.mdb.
Все работает, но очень медленно.Так что после долгих часов поисков я пришел к этому.
Не знаю почему, но после выполнения этого запроса скорость всех остальных запросов резко возрастает (с 10 секунд до 1 секунды).(Даже запросы, которые не исключают связанные таблицы).
Таблица tb_odsotnost находится в my.mdb
Таблица Userinfo связана.
with rQueries.ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT DISTINCT tb_odsotnost.UserID, Userinfo.Name FROM tb_odsotnost');
SQL.Add('LEFT JOIN Userinfo ON Userinfo.UserID = tb_odsotnost.UserID');
SQL.Add('WHERE datum BETWEEN '+startDate+' AND'+endDate);
SQL.Add('ORDER BY Userinfo.Name ASC');
Open;
end;
Я попытался запустить свое приложение на другом компьютере с win7 и MS Access 2007, и в результате получилосьтак же.
Хорошо, сейчас я просто запускаю этот запрос на ForformActivate, но это не постоянное решение.