使用字符串变量

时间:2015-10-29 07:58:52

标签: delphi delphi-xe7

我有以下编码。每当有人想购买CD时,必须扣除数量。当我使用cd名称编码工作时,但当我使用字符串时,没有任何反应。请帮忙。

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;  

1 个答案:

答案 0 :(得分:5)

问题是您搜索名为scd的CD而不是您在输入框中输入的值。您需要将该值作为参数

传递给查询

这样的事情应该可以解决问题:

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;