Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> процедуры и селекты из нее в interbase, select * from <proc_name>; выдает NULL 
:(
    Опции темы
kichum
Дата 14.1.2011, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 17.10.2008

Репутация: нет
Всего: нет



 Здравствуйте. Я в interbase 6.5 полный нуль, вот и возник вопрос. Я написал процедуру:
Код

create procedure GET_ONE
returns (
    ONE integer)
as
begin
  ONE = 1;
end


Я ее могу вызвать через 
Код

EXECUTE PROCEDURE GET_ONE;
 и мне все правильно выдает: ONE=1. Но я хочу использовать возвращаемое процедурой значение в селект запросе (ну и insert тоже). При попытке вставить в запрос execute - выдается ошибка. Но если я использую примерно такую конструкцию
Код

select * from tbl_name where id=(select ONE from get_one);

мне говорит, что ONE=NULL, и ничего я с этим поделать не могу. Как использовать возвращаемое значение в SQL запросе? Можно пример?
P.S.: Извиняюсь, если вопрос очень тупой или где-то на форуме (интернете) есть ответ, я его искал и не нашел.

Это сообщение отредактировал(а) kichum - 14.1.2011, 23:11
PM MAIL   Вверх
Akella
Дата 15.1.2011, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Код

create procedure GET_ONE
returns (
    ONE integer)
as
begin
  ONE = 1;
  suspend;
end


Код
select * from tbl_name where id in (select ONE from get_one);

PM MAIL   Вверх
kichum
Дата 15.1.2011, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 17.10.2008

Репутация: нет
Всего: нет



Большое спасибо. Вот небольшая справка будущим поколениям.
Цитата

SUSPEND  В проседуре выбора SUSPEND возвращает выходные значения, если любой, вызываемому приложению. Не рекомендуется для исполняемых процедур

link
PM MAIL   Вверх
Данкинг
Дата 15.1.2011, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



 smile 
kichum, ты из этой справки сам что-нибудь понял? smile Suspend выполнение ХП останавливает - это да.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 15.1.2011, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Данкинг @  15.1.2011,  20:33 Найти цитируемый пост)
 Suspend выполнение ХП останавливает - это да.

Нет, не останавливает, а выводит результат "наружу" smile
PM MAIL   Вверх
Данкинг
Дата 15.1.2011, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Цитата(Akella @  15.1.2011,  21:00 Найти цитируемый пост)
Нет, не останавливает, а выводит результат "наружу"

Ну, типа того, в книге Бондаря - "Осуществялет временную приостановку выполнения ХП и передачу управления вызвавшей программе". smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 16.1.2011, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



временную приостановку... и код дальше всё равно продолжает работать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.