Текущий архив: 2006.07.16;
Скачать: CL | DM;
ВнизПочему не выполняется запрос - создание хранимой процедуры? Найти похожие ветки
← →
vishnia (2006-05-13 13:18) [0]Для создания уник.значения поля создаю генератор
CREATE GENERATOR GROUPS_N_GROUP;
Затем устанавливаю его нач.значениеSET GENERATOR GROUPS_N_GROUP TO 1;
И хочу создать хранимую процедуру:CREATE PROCEDURE GET_N_GROUP
RETURNS ( NG SMALLINT)
AS
BEGIN
NG= GEN_ID(GROUPS_N_GROUP,1);
END
Выдает ошибку:Dynamic SQL Error
SQL error code = -104
Unexpected end of command
Statement: CREATE PROCEDURE GET_N_GROUP
RETURNS ( NG SMALLINT)
AS
BEGIN
NG= GEN_ID(GROUPS_N_GROUP,1)
Запятую, видимо, не замечает. Не подскажете, как с этим быть?
← →
unknown © (2006-05-13 13:29) [1]
> vishnia (13.05.06 13:18)
NG= GEN_ID(GROUPS_N_GROUP,1) ;
END
Ы?
← →
vishnia (2006-05-13 13:32) [2]Не пойму что-то
← →
unknown © (2006-05-13 13:41) [3]
> vishnia (13.05.06 13:32) [2]
>
> Не пойму что-то
>
> Выдает ошибку:
> Dynamic SQL Error
> SQL error code = -104
> Unexpected end of command
Переводим. "Непредвиденный конец команды". Почему? в PSQL надо ставить ;
А begin всегда должен завершать end
И suspend; где?
← →
vishnia (2006-05-13 13:51) [4]Так я же ставлю ; и end (см. текст процедуры в моем вопросе) или это какуя-то особенная ; ?
> И suspend; где?
Для чего он?
← →
Johnmen © (2006-05-13 13:51) [5]Весь вопрос в том, ГДЕ создаёшь.
ЗЫ
Значения генераторов имеют тип int64 (в старых версиях int). Поэтому использование smallint сомнительно.
Во-вторых, при создании генератора его значение автоматом инициализируется нулём. И след.значение будет 1 (при шаге 1).
← →
unknown © (2006-05-13 13:57) [6]
> vishnia (13.05.06 13:51) [4]
В [0] нет : в процедуре.
И end нет и вообще, текст процедуры приведен не полностью.
← →
vishnia (2006-05-13 14:01) [7]я ввожу такой запрос:
CREATE PROCEDURE GET_N_GROUP
RETURNS ( NG SMALLINT)
AS
BEGIN
NG= GEN_ID(GROUPS_N_GROUP,1);
END
В результате его выполнения (вернее невыполнения) выдается ошибка, текст которой я приводила выше. По-моему и ";" , и "end" в ней на месте, или я одна это вижу? Если же этого недостаточно, чтобы запрос был выполнен, то что нужно добавить?
← →
unknown © (2006-05-13 14:05) [8]Сорри, перечитал вопрос, осознал что неправ.
Невнимательно прочитал первый раз млин :(
Кстати, вот это :CREATE GENERATOR GROUPS_N_GROUP;
SET GENERATOR GROUPS_N_GROUP TO 1;
CREATE PROCEDURE GET_N_GROUP
RETURNS ( NG SMALLINT)
AS
BEGIN
NG= GEN_ID(GROUPS_N_GROUP,1);
END
Протестировал - все создается, без проблем.
← →
unknown © (2006-05-13 14:08) [9]И выполняется без проблем.
Так что Вы чего-то недоговариваете :)
← →
Johnmen © (2006-05-13 14:11) [10]>Невнимательно прочитал ...
Это и так видно....
← →
vishnia (2006-05-13 14:17) [11]
> Невнимательно прочитал первый раз млин :(
Может компилятор такой-же невниммательный как ты :-)
Он в упор не замечает точку с запятой, хотя первые два запроса из [0] выполнились без всяких проблем. Что-нибудь можно сделать с этим? Это Firebird 1.5, создаю через IBConsole.
В документации по CREATE PROCEDURE стоит еще необязательная часть SET TERM, может как-то с этим связано?
← →
Johnmen © (2006-05-13 14:26) [12]Во-во и я говорю, повнимательней бы. Особенно к SET TERM.
Ибо разделителем SQL КОМАНД командной строки в ИБКонсоли является ;
Что совпадает с разделителем команд в процедуре.
А значит их надо различать. И вот здесь SET TERM тебе в руки...:)
← →
vishnia (2006-05-13 14:31) [13]
> И вот здесь SET TERM тебе в руки
Да, и я это уже сделал вот так:SET TERM !! ;
CREATE PROCEDURE GET_N_GROUP
RETURNS ( NG SMALLINT)
AS
BEGIN
NG= GEN_ID(GROUPS_N_GROUP,1);
END !!
SET TERM ; !!
Спасибо всем за советы и внимание!
← →
unknown © (2006-05-13 14:35) [14]
> vishnia (13.05.06 14:31) [13]
Лена, (судя по мылу :)) выбросте нафик ibconsole, для FB лучше пользоваться
IBExpert http://ibexpert.com/rus/index.html - для exUSSR бесплатно.
← →
Desdechado © (2006-05-13 20:30) [15]до поста vishnia (13.05.06 14:17) [11] я почему-то был уверен, что команды SQL вызываются по очереди из дельфийского кода
и ошибка в этом случае возникать не должна
а оно, оказывается, из посторонней программы...
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.01 c