Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > создание хранимой процедуры


Автор: Artemon 30.8.2008, 16:52
Пытаюсь через FireBird Maestro создать ХП:

Код

SET TERM ^ ;

RECREATE PROCEDURE PROCEDURE02
AS 
BEGIN
  SELECT * FROM TABLE01
END^

SET TERM ; ^


На что мне сервер выдает ошибку:
SQL Error:  Dynamic SQL Error SQL error code = -104 Token unknown - line 5, column 1 END. Error Code: -104. Invalid token The SQL: RECREATE PROCEDURE PROCEDURE02
AS 
BEGIN
  SELECT * FROM TABLE01
END
; 


Уже по всякому пробовал создать ХП, не создается, всегда ругается на синтаксис.
Как вообще можно создать ХП ?

Автор: Akella 30.8.2008, 20:04
может create или alter procedure?

Добавлено @ 20:08
http://www.nabble.com/Recreate-procedure-td10557250.html

Добавлено через 8 минут и 30 секунд
Цитата(Artemon @  30.8.2008,  16:52 Найти цитируемый пост)
Как вообще можно создать ХП ? 

 smile да уж, если элементарного не знаете....
тогда Вам на ibase.ru и читать читать читать

Добавлено через 9 минут и 52 секунды
Цитата(Artemon @  30.8.2008,  16:52 Найти цитируемый пост)
Как вообще можно создать ХП ? 


Цитата(Artemon @  30.8.2008,  16:52 Найти цитируемый пост)
RECREATE PROCEDURE

если хоть немного знать английский язык, а программист обязан хоть чуть чуть его знать, то RECREATE переводиться, как пересоздать

Добавлено через 10 минут и 31 секунду
Цитата(Artemon @  30.8.2008,  16:52 Найти цитируемый пост)
FireBird Maestro 

со своей стороны советую попробовать IBExpert

Автор: Artemon 31.8.2008, 10:07
Akella, вы думаете я просто так запостил сюда этот вопрос, перепробовал массу вариантов создания ХП, и если посмотреть на начало топика, то я привожу скрипт, которым пытаюсь созать процедуру, но безуспешно. И привожу конкретную ошибку, если не заметили.

Пробовал и CREATE И ALTER - такоеже сообщение об ошибке.

Цитата

тогда Вам на ibase.ru и читать читать читать

Добавлено через 9 минут и 52 секундыЦитата(Artemon @  30.8.2008,  16:52 )
Как вообще можно создать ХП ? 


Цитата(Artemon @  30.8.2008,  16:52 )
RECREATE PROCEDURE


если хоть немного знать английский язык, а программист обязан хоть чуть чуть его знать, то RECREATE переводиться, как пересоздать


В данном случае написал RECREATE PROCEDURE, т.к. создал пустую процедуру и попытался ее отредактировать (один из вариантов), так что про английский - оставьте при себе.

Автор: Akella 31.8.2008, 12:59
Цитата(Artemon @  31.8.2008,  10:07 Найти цитируемый пост)
В данном случае написал RECREATE PROCEDURE, т.к. создал пустую процедуру и попытался ее отредактировать

Что-то я не пойму, так удалось создать или не удалось?

Если создал и нужно изменить, то alter procedure.

Изъясняйся понятнее, что ты уже делал, а что пытаешься сделать, но не получается.

Извини, мысли твои читать пока не могу.

В итоге до меня начинает доходить, что ты когда-то создал уже процедуру (create procedure). А теперь пытаешься её отредактировать, так?

Добавлено через 2 минуты и 24 секунды
Начать нужно было с того, какой у тебя сервер, может он не понимает RECREATE PROCEDURE. Может это тот маестро глючит.
Ты воспользовался моим советом по поводу IBExpert?

Автор: Artemon 31.8.2008, 15:26
Дело в том, что пустаю ХП создается корректно.
Если пробую в ХП вставить малейший смысл, например: SELECT * FROM CATEGORIES, то тутже ругается на синтаксис SQL.

По поводу Maestro, я тоже подозреваю что именно он глючит, попробую IBExpert.

P.S.

FireBird 2.1

Автор: sergey_85 1.9.2008, 09:07
Вам надо вооружиться книгой по Firebird!
Это вам не MS SQL Server здесь 
Код

select * from table 


в хп просто не прокатит!

А катит здесь например такое 

Код

set term ^;

create procedure  my_sp_example ( id_search  integer)
returns ( CONTRACTNAME varchar (150))
as
begin
select CONTRACTNAME from contracts where CONTRACTID = :id_search into :CONTRACTNAME;
suspend;
end;


а чтобы выбрать данные
Код

select * from MY_SP_EXAMPLE(23)




Посмотри здесь хорошая среда разработки (http://www.sqlly.com/) -бесплатна 
+  IBExpert
 - импорт/экпорт проектов
- система контроля версий
- и многое другое 

А вот и книга (только автор)
хеллен борри
FireBird руководство разработчика баз данных

Автор: Deniz 1.9.2008, 09:27
Цитата(sergey_85 @  1.9.2008,  12:07 Найти цитируемый пост)
А катит здесь например такое
...
select CONTRACTNAME from contracts where CONTRACTID = :id_search into :CONTRACTNAME;
...
такое не прокатит если в таблице больше одной записи.
Надо так:
Код

  for select CONTRACTNAME from contracts where CONTRACTID = :id_search into :CONTRACTNAME do suspend;

Автор: sergey_85 1.9.2008, 09:34
ах да забыл молодец что испарвил!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)