|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Создание Хранимой Процедуры из приложения. База данных 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 это возникает в приложении? Заранее благодарен. Последний раз редактировалось Admin, 04.09.2014 в 19:28. |
#2
|
|||
|
|||
TIBScript
Либо используй TIBScript.
Либо выполняй каждый оператор DDL в отдельном запросе. (http://www.sql.ru/forum/713722/vypol...dl-operatorami) |
#3
|
|||
|
|||
kaakaa
Спасибо за совет и ссылку. Попробую... |