Показать сообщение отдельно
  #1  
Старый 04.09.2014, 10:56
pkemp pkemp вне форума
Прохожий
 
Регистрация: 04.09.2014
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Создание Хранимой Процедуры из приложения. База данных Firebird

Задача заключается в создании ХП из приложения.
SQL код выполняется через компонент Memo.
С созданием таблиц и запросов обновления, вставки через Мемо проблем нет. Проблема касается только создания из Мемо хранимых процедур.

Код процедуры Delphi:
Код:
procedure TForm1.mySpEditData(q: TIBQuery; m: TMemo);
begin
  try
    with q do
      begin
          SQL.Assign(m.Lines);
          Transaction.StartTransaction;
          ExecSQL;
          Transaction.Commit;
          Transaction.Active:=false;
      end;
  except
    on E: Exception do
      begin
        ShowMessage('Error!');
        Halt;
      end;
  end;
end;

Код создания процедуры. Самый простой вариант:
Код:
SET TERM ^ ;
create or alter procedure SP_MY_PROC (
    ID1 integer,
    ID2 integer,
    ID3 integer)
as
begin
    insert into TABLE1 (ID1, ID2, ID3)
      values (:ID1, :ID2, :ID3);
end^
SET TERM ; ^
GRANT INSERT ON TABLE1 TO PROCEDURE SP_MY_PROC;
GRANT EXECUTE ON PROCEDURE SP_MY_PROC TO SYSDBA;
Админ: Пользуемся тегами при оформлении кода!

Сообщение об ошибке следующее:

Dymamic SQL Error
SQL Error Code = -104
Token unknown - line 1, column5
TERM'


Примечание При запуске такой команды через IBExpert проблем никаких не возникает, все создается.
Подскажите, пожалуйста, в чем может быть проблема. Почему на операторе ТЕRM это возникает в приложении?

Заранее благодарен.
Ответить с цитированием