Top.Mail.Ru
Ответы

БД в MySQL и Delphi

Надо в модуле Склад сделать пункт Добавление товара. Как написать запрос корректно на проверку наличия такого же товара на складе и обновления его количества. Если такого наименования товара нет - создать новую строку в БД?

Что надо исправить в этом коде?

ADOQuery1.Active:=false;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE goods SET count = '+Edit2.Text+' + count WHERE name = '''+Edit1.Text+'''');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Add('INSERT INTO goods');
ADOQuery1.SQL.Add('(Name, count, sum)');
ADOQuery1.SQL.Add('VALUES('''+Edit1.Text+''', '+Edit2.Text+', '+Edit3.Text+')');
ADOQuery1.ExecSQL;
ADOQuery1.Active:=false;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT *FROM goods');
ADOQuery1.ExecSQL;
ADOQuery1.Open;

Дополнен

Если кому надо решение этого вопроса вот:

NSERT INTO table_name(name, count, sum) 'VALUES ('''+Edit1.Text+''', '+Edit2.Text+', '+Edit3.Text+' ON DUPLICATE KEY UPDATE count = count + '+Edit2.Text+', sum = sum + '+Edit3.Text+'');

По дате
По рейтингу
Аватар пользователя
Оракул
12лет

Сделать выборку по нашему товару - если результат пустой, делать INSERT, иначе UPDATE