gold_dezmor
@gold_dezmor
Digital director / Product manager

Как отменить все изменения(в том числе восстановить удаленные записи) из БД MySQL — Delphi 7?

Добрый день!

Имеется таблица в БД 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. Почитал про него, вроде бы то что нужно.
Но он не работает. При попытке по двойному щелчку открыть редактор полей получаю сообщение об ошибке:
b849deff149b4963826e7486bb9f25f0.jpg

Пытался настроить по вот этой инструкции: www.delphisources.ru/pages/faq/base/tupdatesql.html

Помогите организовать процесс безопасного редактирования.
  • Вопрос задан
  • 842 просмотра
Решения вопроса 1
gold_dezmor
@gold_dezmor Автор вопроса
Digital director / Product manager
Разобрался..

Компонент ZQuery может сам кешировать изменения, в том числе удаление информации.
Помогла данная инструкция:
www.delphiplus.org/sql-v-delphi5/sql-v-delphi5_43.html

Но как работать с MySQL через UpdateSQL непонятно, точнее у меня компонент не работает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@karminski
Senior React.JS Developer
Возможно вам помогут транзакции?
https://dev.mysql.com/doc/refman/5.7/en/commit.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы