![]() |
|
|
#1
|
|||
|
|||
|
Код:
with form1.ADOQuery1 do begin
SQL.Clear;
SQL.Add('IF EXISTS(SELECT * FROM sklad WHERE detail='+quotedstr(sname.text)+') BEGIN');
SQL.Add('UPDATE sklad SET (ostatok=ostatok+:ost) and (prihod=prihod+:ost) WHERE detail='+quotedstr(sname.text)+'');
SQL.Add('END#13#10 ELSE BEGIN');
SQL.Add('INSERT INTO sklad(detail,mark,prihod,rashod,ostatok,costuah,costusd)');
SQL.Add('VALUES(:det,:mar,:ost,0 ,:ost,:co1,:co2)');
Parameters.Refresh;
Parameters.ParamByName('det').value:=Sname.text;
Parameters.ParamByName('mar').value:=Smark.items[smark.itemindex];
Parameters.ParamByName('ost').value:=Snum.value;
Parameters.ParamByName('co1').value:=Scost.text;
Parameters.ParamByName('co2').value:=Scost2.text;
ExecSQL;
SQL.Clear;
SQL.Add('SELECT * FROM sklad');
Active:=true;Выдает ошибку Parameter 'det' not found...Не понимаю в чем проблема, помогите Код:
SQL.Add('INSERT INTO sklad(detail)');
SQL.Add('VALUES(:det)'); Так тоже не работает =/ Последний раз редактировалось toddams, 05.02.2013 в 22:05. |
|
#2
|
||||
|
||||
|
не знаю, что у вас за SQL-сервер, но думаю, что вместо:
Код:
SQL.Add('END#13#10 ELSE BEGIN');Код:
SQL.Add('END'#13#10' ELSE BEGIN');И потом, если вы начинаете sql-блок через BEGIN то и закрывать его тоже где-то надо через END Последний раз редактировалось Страдалецъ, 06.02.2013 в 12:24. |