|
#1
|
|||
|
|||
ADO + parameters
Код:
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. |