Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

Хранимые процедуры   Найти похожие ветки 

 
Talla2k   (2003-11-18 16:27) [0]

А можно ли в хранимой процедере вызвать еще одну хранимую процедуру???

Для ОБРАЗЦА(упроченная)
set term ^;
create procedure nozero(pl char(5),nu char(8))
returns (num1 char(8))
as
begin
select num1 from get_num(:pl,:nu);
end^
set term;^

Где get_num также хранимая процедура

Вроде правильно создал,а всегда получаю
Dynamic SQL Error
SQL error code = -104
Token unknown - line 5, char 32
;


 
stud   (2003-11-18 16:29) [1]

можно
select num1 from get_num(:pl,:nu) into ...;


 
Talla2k   (2003-11-18 23:32) [2]

Ну да именно так и было!!!Это ж я так для примера!!!
Самое главное ЭТО МОЖНО ЛИ ИЗ ХРАНИМОЙ ВЫЗВАТЬ ХРАНИМУЮ???


 
Rad   (2003-11-19 05:51) [3]

Да, можно. И незачем так кричать :)
RTFM INTO


 
stud   (2003-11-19 09:26) [4]

внимательней читать нужно))))


 
aVast   (2003-11-19 11:31) [5]

ваабще для вызова процедур используется
EXECUTE PROCEDURE [TRANSACTION transaction]
name [:param [[INDICATOR]:indicator]]
[, :param [[INDICATOR]:indicator] …]
[RETURNING_VALUES :param [[INDICATOR]:indicator]
[, :param [[INDICATOR]:indicator] …]];

DSQL form:

EXECUTE PROCEDURE name [param [, param …]]
[RETURNING_VALUES param [, param …]]

пример:

EXECUTE PROCEDURE DEPT_BUDGET 100 RETURNING_VALUES :sumb;

EXECUTE PROCEDURE DEPT_BUDGET :rdno RETURNING_VALUES :sumb;


 
aVast   (2003-11-19 11:35) [6]

то есть в твоем случае:
set term ^;
create procedure nozero(pl char(5),nu char(8))
returns (num1 char(8))
as
begin
execute procedure get_num(:pl,:nu)
returning_values (:num1);
end^
set term;^


 
Zacho   (2003-11-19 11:40) [7]


> aVast © (19.11.03 11:31) [5]

Это для случая, когда процедура возвращает только одну запись или не возвращает ничего вообще.
P.S. А зачем привел SQL form и примеры для Embedded SQL ? Вряд ли автор вопроса использует gpre


 
aVast   (2003-11-21 10:19) [8]

to Zacho © (19.11.03 11:40)
>Это для случая, когда процедура возвращает только одну запись или не возвращает ничего вообще.

процедура не может возвращать записи :)
а для случаев, когда процедура возвращает насколько значений синтаксис сооответственно:
execute procedure get_num(:pl,:nu)
returning_values (:num1, :num2, :num3);


 
Johnmen   (2003-11-21 10:25) [9]

>aVast © (21.11.03 10:19)
>процедура не может возвращать записи :)

Да ну ?
:)


 
aVast   (2003-11-21 10:31) [10]

to Johnmen © (21.11.03 10:25)
ну да


 
Zacho   (2003-11-21 10:31) [11]


> aVast © (21.11.03 10:19) [8]
>
> процедура не может возвращать записи :)

А я и не знал. Наверное, поэтому у меня процедуры прекрасно возвращают наборы данных. :-)
RTFM suspend, for select, select и т.п.


 
stud   (2003-11-21 10:32) [12]


select sum(gnr) from isp_report(0,:KOD_VR,:D1,:D2) into :sum_gnr;


> aVast © (21.11.03 10:19) [8]

вот реальный пример, который нормально у меня работает


 
Johnmen   (2003-11-21 10:33) [13]

И у меня глюк. И у меня возвращают...:)


 
aVast   (2003-11-21 10:45) [14]

народ у вас проблема с терминалогией. то что вам возвращается это не записи, это значения переменных, полученные процедурой.


 
Johnmen   (2003-11-21 10:53) [15]

>aVast © (21.11.03 10:45)

А что такое запись ? И что такое набор данных ?
В твоем понимании.


 
aVast   (2003-11-21 11:06) [16]

Запись - это набор полей, относящихся к одному объекту, например, записью может быть совокупность имени и номера телефона.
Набор данных - это некоторый набор записей, выбранных из базы по какому-то признаку.


 
Johnmen   (2003-11-21 11:15) [17]

>например, записью может быть совокупность имени и номера телефона.

То есть, если процедура возвращает совокупность двух значений, имя и номер телефона, то это запись.
Если процедура возвратит набор таких совокупностей, то значит возвращен НД.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
1-36702
zapped
2003-12-02 12:17
2003.12.12
Dragging TListItem


1-36640
Viper-Omsk
2003-11-22 17:51
2003.12.12
Перемещение файла


3-36573
Лариса
2003-11-20 13:31
2003.12.12
Запрос


3-36540
Andrey__
2003-11-20 13:44
2003.12.12
ADO+Access2000+@@identity


1-36645
Gorn
2003-11-30 20:58
2003.12.12
Дистрибютив программы и Rave





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский