Задержка добавления записи в базу Access из Dephi

  • Автор темы Автор темы Zver
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Z

Zver

Добрый день.

Столкнулся со следующей проблемой:

В отдельной форме вводятся данные полей, затем добавляется запись в уже подключенную базу Access:

with ADOQuery1 do
begin
ConnectionString := Global_DBConnection_String;
SQL.Text := 'SELECT key FROM MainTable';
Open;
Last;
UniqueNumber := 1 + StrToInt(FieldByName('key').AsString);
Close;
SQL.Text := 'INSERT INTO MainTable Values (' +
QuotedStr(IntToStr(UniqueNumber)) + ',' +
QuotedStr(ObjectNameBox.Text) + ',' +
QuotedStr(AdressBox.Text) + ',' +
QuotedStr(COUFNS.Text) + ',' +
QuotedStr(PlkaUFNS.Text) + ',' +
QuotedStr(COInspection.Text) + ',' +
QuotedStr(PlkaInspection.Text) + ',' +
QuotedStr(TORM.Text) + ',' +
QuotedStr(OutsideObjects.Text) +
')';
ExecSQL;
Close;
end;


Затем на основной форме обновляем таблицу:


ADOTable1.Active := False;
ADOTable1.Active := True;


Но новая запись видна в таблице, только если обновить ADOTable спустя секунд 5. Пробовал по-разному, все равно такая задержка..

Подскажите, пожалуйста, если какой-то выход? Заранее спасибо)
 
А БД в сети или локально?
 
Локально
 
По тексту программы никаких видимых заминок быть не должно, кроме метода Last().
Как вариант, можно попробовать получить значение с помощью запроса:
Код:
SELECT MAX(KEY) FROM MAINTABLE
Но скорее всего оперативной памяти не хватает или ещё почему-то серверная часть Access медленно отрабатывает.
Обновлять можно методом Refresh() немного быстрее.

Удачи!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab