是的,我添加一条记录,商品编号001,商品全名:电脑,数量XX,输入的数量超过库存,程序报出信息并取消了操作,但是在次添加这种商品,报错说不能插入重复键,打开表看该记录已经存在于表中,重复试了好几个表单都是这样.
DataSetBroker1.DataSet.First;
while not DataSetBroker1.DataSet.Eof do
begin
b:=DataSetBroker1.DataSet.FieldByName('SPBH').AsString.Trim();
s:=DataSetBroker1.DataSet.FieldByName('SL').AsInteger;
DataSetBroker1.DataSet.Next;
with lsqldataset do
begin
sql.Text := 'select SUM(SL) SL from STSHD,STSHDMXB where STSHDJBH=DJBH and STSHSHCK='''
+ fhckstr + ''' and SPBH='''
+ b + '''';
Open;
CKint:=FieldByName('SL').AsInteger;
CKint:=CKint-s;
if CKint<0 then
begin
Dialogs.ShowMessage('商品编号:' + b +' '+ fhckstr + ' 库存量不足,不能过帐!');
DataSetBroker1.DataSet.cancelUpdates;
end;
Close;
end;
end;
难道是事件不对?这个事件不是在保存之前执行的么? |