powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / НЕ удается вызвать ХП из запроса
13 сообщений из 13, страница 1 из 1
НЕ удается вызвать ХП из запроса
    #32158245
Zero-Skilled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, пользуюсь Interbase 6 в первый раз. (Речь идет именно о Borland Interbase 6). Хочу cоздать ХП - аналог NVL() как в Oracle - но без наворотов с типизацией,только для типа TIMESTAMP (больше мне ничего не надо).

Вот процедура:

SET TERM !! ;
CREATE PROCEDURE TMS_NVL(TMS_DEFAULT TIMESTAMP, TMS_ALTERNATE TIMESTAMP)
RETURNS (RESULT TIMESTAMP)
AS
BEGIN

IF (TMS_DEFAULT IS NULL ) THEN
BEGIN
RESULT = TMS_ALTERNATE;
EXIT;
END

RESULT = TMS_DEFAULT;
EXIT;

END !!
SET TERM ; !!

Так вот, при выполнении (например) запроса

select * from TMS_NVL(current_timestamp, current_timestamp)

получаю сообщение: Unknown error
Statement: select * from nvl(current_timestamp,current_timestamp )

Где именно я не прав?
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158355
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suspend вставлять не пробовал?
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158388
Zero-Skilled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробовал - вставлял SUSPEND вместо END (в двух местах) - тогда IB прокидывает то же сообещние о неизвестной ошибке (см. выше) но в отличие от предыдущего варианта c (двумя END) возвращает результат.

Однако если первый параметр определить как NULL, а чторой как CURRENT_TIMESTAMP то процедура возвращает ДВА значения. То есть большого облегчения от SUSPEND нет - IB продолжает ругатся и возвращает странные значения.

Коллеги, неужель никто не подскажет в чем кривизна этой ХП?
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158430
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SET TERM !! ; 
CREATE PROCEDURE TMS_NVL(TMS_DEFAULT TIMESTAMP, TMS_ALTERNATE TIMESTAMP) 
RETURNS (RESULT TIMESTAMP) 
AS 
BEGIN 
  IF (TMS_DEFAULT IS NULL) THEN 
    RESULT=TMS_ALTERNATE; 
  ELSE
    RESULT=TMS_DEFAULT; 
  SUSPEND;
END !! 
SET TERM ; !! 
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158470
Zero-Skilled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробовал - результат тот же самый:
на запрос
Код: plaintext
select * from tms_nvl(current_timestamp,current_timestamp)

выдает:

Код: plaintext
1.
Unknown error
Statement: select * from tms_nvl(current_timestamp, current_timestamp)
и уж потом значение...

Коллеги, неужели никто ничего не может подсказать?
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158477
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IB6 был довольно глюкавым. Бери FB. Никто ж не будет себе специально ставить это старьё, чтоб посмотреть, что происходит. Я ж уже давал тебе ссылки.
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158518
Zero-Skilled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За ссыки на FB - спасибо, но приложение должно работать именно под IB 6.0

Если Interbase - глючный и бажый, то откуда на этом форуме такое количество примеров вызова ХП именно под IB? И почему тогда другие процедуры работают? Ладно, это лирика.

Коллеги, кто из использующих IB 6.0 может помотреть несколько проклятых строчек кода и высказать конструктивное предположение почему именно они приводят к такому сообщению?
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158567
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да будет тебе известно, что FB (как и Yaffil) основан на IB6 и есть его клон, только намного более доработанный, менее глючный и с расширенной функциональностью. Всё, что работало в IB, работает и в FB. К тому же FB бесплатный. Назови хоть одну причину, почему тебе подходит IB6 и не подходит FB1 ?
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158584
Zero-Skilled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И про клонов и про то, что они леченные хорошо известно.

А назвать Вам причину - запросто: американский заказчик во всех поставках своей системы уже даквно использует IB6.0, поставок было много, и он понятное дело не хочет перелезать на что бы то ни было. Проще заставить ХП процедуру работать как надо или на крайний случай обработать ситуацию в коде вызвающего приложения чем перетаскивать на новое ПО сотни пользователей по всем Штатам.

Итак, есть ли кто-либо кому хоть раз в своей жизни удалось выполнить select * from <хранимая_процедура> под IB6.0 , способный привести объяснения по которым вышеозначенная ХП не работает?
(Orcale, MySQL, DB2 и клоны IB не в счет, равно как и другие СУБД)
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158591
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда обратись на news://forums.demo.ru/epsylon.public.interbase
Это самая компетентная конференция по IB. Не помогут там, значит не помогут, скорее всего, нигде.
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158747
Acue
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В IBExpert:
- cоздал процедуру от Gold (с языка снял :-) )
- select * from tms_nvl(current_timestamp,current_timestamp) выполняется на УРА.

версия: WI-V 6.0.0.627
диалект: 3
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32158967
Zero-Skilled
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура!

Cтало быть, IB Interactive SQL для отладки ХП совершенно непригоден и даже вреден.

Спасибо Acue, спасибо Gold.
...
Рейтинг: 0 / 0
НЕ удается вызвать ХП из запроса
    #32160116
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и неправда, использую только ISQL для IB6.0, без пробелем накатываются процедуры, и прочее...
Запросы типа select * from myproc выполняются нормально, а если говорить об отладке, то ISQL процедуры и не отлаживает, и даже не позволяет их интерактивно создавать, но зато очень хорошо дает понимание базы и ее сути, для новичков это самое то...
Про клонов не знаю, может и есть смысл, просто не пробовал...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / НЕ удается вызвать ХП из запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]