Delphi SQL Обновление одной записи с использованием строковой переменной

У меня есть следующая кодировка. Каждый раз, когда кто-то хочет купить компакт-диск, количество должно быть вычтено. Когда я использую имя компакт-диска, кодирование работает, но когда я использую проверяемую строку, ничего не происходит. Пожалуйста помоги.

var scd : string;
begin
   scd := inputbox('CD Name','Enter CD Name','');
   CDQuery.Active := False;
   cdquery.SQL.Clear;
   CDQuery.SQL.Text := 'Update CD_Table Set Quantity = Quantity - 1 where Cdname = ''scd''';
   CDQuery.ExecSQL;
   messageDlg('Quantity was updated',mtInformation,[mbOK],0);
   CDQuery.SQL.text := 'Select * from CD_Table';
   CDQuery.Active := True;  

person Emiel Nel    schedule 29.10.2015    source источник


Ответы (1)


Проблема в том, что вы ищете компакт-диск с именем scd, а не значение, которое вы ввели в поле ввода. Вам нужно передать это значение в запрос в качестве параметра

что-то вроде этого должно помочь:

var
  scd: string;
begin
  scd := inputbox('CD Name', 'Enter CD Name', '');
  CDQuery.Active := False;
  CDQuery.SQL.Clear;
  CDQuery.SQL.Text := 'Update CD_Table Set Quantity = Quantity - 1 where Cdname = :Cdname';
  CDQuery.ParamByName('Cdname').AsString := scd;
  CDQuery.ExecSQL;
  MessageDlg('Quantity was updated', mtInformation, [mbOK], 0);
  CDQuery.SQL.Text := 'Select * from CD_Table';
  CDQuery.Active := True;
end;
person Jens Borrisholt    schedule 29.10.2015