Как я могу обновить поле Количество в DBGrid, используя SQL-запрос в Delphi (adotable)? - PullRequest
0 голосов
/ 02 мая 2019

У меня есть поле (количество) в таблице1 (продукт) и у меня есть поле (amount_delivered) в table2 (Продажа). Каждый раз, когда я продаю товар, количество в таблице должно обновляться (Количество-quantity_delivered).

Как я могу сделать это в Delphi? идея неда помощь

1 Ответ

0 голосов
/ 02 мая 2019

Используйте компонент TAdoQuery с оператором SQL, например так:

ADOQuery.SQL.Text :=
'UPDATE product'
+ ' SET quantity = quantity - :quantity_delivered'
+ ' WHERE product_key = :product_key';

ADOQuery.Parameters.ParamByName('quantity_delivered').DataType := ftInteger;
ADOQuery.Parameters.ParamByName('quantity_delivered').Value := 42;

ADOQuery.Parameters.ParamByName('product_key').DataType := ftInteger;
ADOQuery.Parameters.ParamByName('product_key').Value := 123;

ADOQuery.ExecSQL;

Этот код работает с параметрами SQL.Это полезно для предотвращения взломов SQL-инъекций, поскольку значения параметров преобразуются и экранируются должным образом.

Поскольку вы не предоставили подробных сведений о разметке таблиц, мне пришлось привести еще один пример того, как это происходитготово!
Пожалуйста, проверьте тип данных первичного ключа таблицы product или, тем не менее, вы идентифицируете один продукт и измените свойства параметра DataType и Value, а также идентификатор "product_key" вКоманда SQL!
Вам также придется вставить переменную для значения параметра quantity_delivered, так как вы, конечно, не хотите уменьшать количество на 42 каждый раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...