не знаю, что у вас за SQL-сервер, но думаю, что вместо:
Код:
SQL.Add('END#13#10 ELSE BEGIN');
надо писать:
Код:
SQL.Add('END'#13#10' ELSE BEGIN');
Да и использование одноименного параметра в разных местах запроса тоже может приводить к неожиданным ошибкам.
И потом, если вы начинаете sql-блок через BEGIN то и закрывать его тоже где-то надо через END