我有以下编码。每当有人想购买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;
答案 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;