With query1 do
begin
close;
sql.clear;
sql.add('update bookshop
set booknum=booknum-:no
where bookname=:bn');
parambyname('no').value:=strtoint(Edit1.text);
parambyname('bn').value:=edit2.text;
open;
end;
begin
close;
sql.clear;
sql.add('update bookshop
set booknum=booknum-:no
where bookname=:bn');
parambyname('no').value:=strtoint(Edit1.text);
parambyname('bn').value:=edit2.text;
open;
end;
set booknum=booknum-2
where bookname='c语言大全'
肯定是没有满足条件的记录
先试一下 select * from bookshop where bookname='c语言大全'update bookshop
set booknum=booknum-:no
where bookname=:bnparamsbyname(no).value:=strtoint(Edit1.text);
paramsbyname(bn).value:=edit2.text;
再sql explore中运行sql语句,根本改不了booknum的值。
是不是access不支持sql update?
说是没定义。
不过update语句还是不行。
可以运行了。但是本数还是没变啊。
怎么回事呢?
with query1 do begin
Active := False;
SQL.Clear;
SQL.Add("select booknum from book where bookname='CLanguage'");
Active := True;
CurrBookNum := Fields.Fields[0].AsInteger;
end;with query2 do begin
Active := False;
SQL.Clear;
SQL.Add("update book set booknum=:BookNum where bookname=:BookName");
Parameters.ParamByName('BookNum').Value := CurrBookNum - 2;
Parameters.ParamByName('BookName').Value := 'CLanguage';
ExecSQL;
end;