DBGrtid Условие

Подскажите пожалуйста, как исправить этот код, чтобы опрограмм проверяла можно ли производить вычитание! если цыфра которую ввели больше той которая находится в ячейке, то выводилась ошибка.procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; Form1.Edit1.Text=kol; ADOQuery1.SQL.Text:=('UPDATE sklad SET kolicestvo = kolichestvo - kol WHERE Naimenovanie='+ DBGrid1.DataSource.dataset.fieldbyn ame('Catter').asstring); ADOQuery1.ExecSQL; ADOQuery1.SQL.Text:='SELECT * FROM Tovary'; ADOQuery1.Active:=true; ADOQuery2.Active:=false; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('SELECT Naimenovanie, cater, Cena1, kolichestvo'); ADOQuery2.SQL.Add('INSERT INTO TOVARY (Naimenovanie, cater, Cena1, kolichestvo');
1 ответ

лучше всего писать ХП под это дело, в которой и реализовать всю логику но если ваша субд не позволяет этого, то добавьте тогда еще один селект
ADOQuery1.SQL.Text:= 'select kolicestvo from sklad where Naimenovanie = :p0';
ADOQuery1.Parameters.ParambyName('p0').AsString := DBGrid1.DataSource.dataset.fieldbyn ame('Catter').asstring;
ADOQuery1.Open;
if ADOQuery1.FieldByName('qty').AsInteger > l_kol then 
begin
 // здесь остальной код
end;
и эттаа... нипанятна откуда в запрос попадет кол-во, которое вычитается? или это кол-во само уже есть в таблице sklad ?