Добрый день!
Имеется таблица в БД MySQL с именем b_sale_basket.
Данные отбираются с помощью zQuery из пакета компонентов Zeos.
procedure TOrdersForm.ViewBtnClick(Sender: TObject);
begin
with OrderView.ZQueryBasket do
begin
Close; // Опрос таблицы "Корзины"
SQL.Clear;
SQL.Add('SELECT order_id, product_id, price, currency, weight, quantity, name, detail_page_url, discount_price, base_price FROM b_sale_basket');
SQL.Add('WHERE order_id = :nav_ord');
ParamByName('nav_ord').Value := zQuery1.FieldByName('ID').Value;
Open;
end;
end;
Отобранные данные выводятся в DBGrid.
Редактирование осуществляется через компоненты DBEdit. Сам Грид находится в ReadOnly.
Вопрос в следующем, как кешировать изменения?
Не имел опыта кешированных изменений.
Задача в том, чтобы изменения применялись только после нажатия кнопки "Сохранить" ко всему отобранному набору данных.
То есть пользователь может сначала отредактировать одну запись, потом отредактировать другую, далее удалить третью запись или добавить четвертую.
Как организовать отмену всех изменений, в том числе удаление записей, если вдруг пользователь передумал что-то менять в таблице?
Я так понимаю для этого и существует механизм кеширования изменений.
Нашел на вкладке ZEOS ACCESS компонент ZUpdateSQL. Почитал про него, вроде бы то что нужно.
Но он не работает. При попытке по двойному щелчку открыть редактор полей получаю сообщение об ошибке:
Пытался настроить по вот этой инструкции:
www.delphisources.ru/pages/faq/base/tupdatesql.html
Помогите организовать процесс безопасного редактирования.