Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #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 это возникает в приложении?

Заранее благодарен.

Последний раз редактировалось Admin, 04.09.2014 в 19:28.
Ответить с цитированием
  #2  
Старый 04.09.2014, 11:15
kaakaa
 
Сообщения: n/a
По умолчанию TIBScript

Либо используй TIBScript.
Либо выполняй каждый оператор DDL в отдельном запросе.

(http://www.sql.ru/forum/713722/vypol...dl-operatorami)
Ответить с цитированием
  #3  
Старый 04.09.2014, 12:18
pkemp pkemp вне форума
Прохожий
 
Регистрация: 04.09.2014
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

kaakaa
Спасибо за совет и ссылку. Попробую...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:32.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter